From e0965debdfc7149b9490d66d45c8737ca574ed21 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 15 十二月 2023 14:47:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java                    |    2 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/join/ParksJoinMapper.java            |   15 +
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java                     |    5 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/ParksController.java                   |    7 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java        |   86 ++-------
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java    |  108 +++--------
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java                      |   26 ++
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java                  |   27 +++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java |   44 ++++
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                         |    3 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/ParkBookController.java                |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java  |    6 
 server/dmvisit_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java              |    5 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java                  |    7 
 server/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java               |   10 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java       |  101 +++--------
 server/dmvisit_service/src/main/resources/mappers/SystemDictDataMapper.xml                        |   14 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java      |   16 +
 18 files changed, 261 insertions(+), 223 deletions(-)

diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java
index 3ea4554..5c38b14 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java
@@ -69,7 +69,7 @@
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
-    @RequiresPermissions("business:cars:query")
+   // @RequiresPermissions("business:cars:query")
     public ApiResponse<PageData<Cars>> findPage (@RequestBody PageWrap<Cars> pageWrap) {
         return ApiResponse.success(carsService.findPage(pageWrap));
     }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java
index 70c7f05..b143bea 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java
@@ -87,4 +87,11 @@
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(deviceService.findById(id));
     }
+
+    @ApiOperation("鑾峰彇闂ㄧ闆嗗悎-鎻愪緵缁欓棬绂佺粍")
+    @PostMapping("/getList")
+    //@RequiresPermissions("business:device:query")
+    public ApiResponse findList(@RequestBody Device device) {
+        return ApiResponse.success(deviceService.findIdAndNameList(device));
+    }
 }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/ParkBookController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/ParkBookController.java
index 28b9742..aa3a4ac 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/ParkBookController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/ParkBookController.java
@@ -69,7 +69,7 @@
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
-    @RequiresPermissions("business:parkbook:query")
+   // @RequiresPermissions("business:parkbook:query")
     public ApiResponse<PageData<ParkBook>> findPage (@RequestBody PageWrap<ParkBook> pageWrap) {
         return ApiResponse.success(parkBookService.findPage(pageWrap));
     }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/ParksController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/ParksController.java
index ebd49c7..29360e2 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/ParksController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/ParksController.java
@@ -74,6 +74,13 @@
         return ApiResponse.success(parksService.findPage(pageWrap));
     }
 
+    @ApiOperation("鎵�灞炲仠杞﹀満鍒楄〃")
+    @PostMapping("/findList")
+    @RequiresPermissions("business:parks:query")
+    public ApiResponse<List<Parks>> findList (@RequestBody Parks parks) {
+        return ApiResponse.success(parksService.findList(parks));
+    }
+
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:parks:exportExcel")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index abc5f81..69242b4 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -70,6 +70,9 @@
     // ERP ACCESS_SECRET
     public static final String ERP_ACCESS_SECRET = "ERP_ACCESS_SECRET";
 
+    // FTP鏂囦欢鏈嶅姟鍣ㄨ祫婧愯闂湴鍧�
+    public static final String FTP_RESOURCE_PATH = "FTP_RESOURCE_PATH";
+
     public static  Date  getBirthdyByCardNo(String idCard){
     if(idCard ==null || idCard.length()<14){
         return null;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/ParksJoinMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/ParksJoinMapper.java
new file mode 100644
index 0000000..54e509c
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/ParksJoinMapper.java
@@ -0,0 +1,15 @@
+package com.doumee.dao.business.join;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.Parks;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+public interface ParksJoinMapper extends MPJJoinMapper<Parks> {
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
index d55e19a..9d0986c 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -96,4 +97,29 @@
     @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤")
     private Integer status;
 
+    @ApiModelProperty(value = "鍋滆溅鍦哄悕绉�", example = "1")
+    @ExcelColumn(name="鍋滆溅鍦哄悕绉�")
+    @TableField(exist = false)
+    private String parksName;
+
+    @ApiModelProperty(value = "鐢ㄦ埛绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳", example = "1")
+    @ExcelColumn(name="鐢ㄦ埛绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳")
+    @TableField(exist = false)
+    private Integer memberType;
+
+    @ApiModelProperty(value = "濮撳悕", example = "1")
+    @ExcelColumn(name="濮撳悕")
+    @TableField(exist = false)
+    private String memberName;
+
+    @ApiModelProperty(value = "鎵嬫満鍙�", example = "1")
+    @ExcelColumn(name="鎵嬫満鍙�")
+    @TableField(exist = false)
+    private String memberPhone;
+
+    @ApiModelProperty(value = "閮ㄩ棬", example = "1")
+    @ExcelColumn(name="閮ㄩ棬")
+    @TableField(exist = false)
+    private String companyName;
+
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
index f904522..bc37b58 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -106,4 +107,30 @@
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date hkDate;
 
+
+    @ApiModelProperty(value = "鍋滆溅鍦哄悕绉�", example = "1")
+    @ExcelColumn(name="鍋滆溅鍦哄悕绉�")
+    @TableField(exist = false)
+    private String parksName;
+
+    @ApiModelProperty(value = "鐢ㄦ埛绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳", example = "1")
+    @ExcelColumn(name="鐢ㄦ埛绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳")
+    @TableField(exist = false)
+    private Integer memberType;
+
+    @ApiModelProperty(value = "濮撳悕", example = "1")
+    @ExcelColumn(name="濮撳悕")
+    @TableField(exist = false)
+    private String memberName;
+
+    @ApiModelProperty(value = "鎵嬫満鍙�", example = "1")
+    @ExcelColumn(name="鎵嬫満鍙�")
+    @TableField(exist = false)
+    private String memberPhone;
+
+    @ApiModelProperty(value = "閮ㄩ棬", example = "1")
+    @ExcelColumn(name="閮ㄩ棬")
+    @TableField(exist = false)
+    private String companyName;
+
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
index e5143d5..ad8e9b2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -99,4 +100,8 @@
     @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤")
     private Integer status;
 
+    @ApiModelProperty(value = "鎵�灞炲仠杞﹀簱", example = "1")
+    @TableField(exist = false)
+    private String parentName;
+
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
index 1a11139..9e0b291 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
@@ -4,6 +4,7 @@
 import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.vo.SystemDictDataListVO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -16,4 +17,8 @@
      */
     List<SystemDictDataListVO> selectManageList(QuerySystemDictDataDTO dto);
 
+    /**
+     * 鏍规嵁Code 鏌ヨ瀛楀吀琛╟ode瀵瑰簲鐨勫��
+     */
+    List<SystemDictData> list(@Param("codes") List<String> codes);
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
index 229c4b8..272e3e1 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
@@ -79,7 +80,14 @@
      * @return List<Device>
      */
     List<Device> findList(Device device);
-  
+
+    /**
+     * 鏍规嵁鏉′欢鏌ヨ,鎵�鏈夐棬绂佺殑ID鍜屽悕绉�
+     * @param device
+     * @return
+     */
+    List<Device> findIdAndNameList(Device device);
+
     /**
      * 鍒嗛〉鏌ヨ
      *
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
index 64358a0..182e214 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -10,6 +10,7 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.admin.request.CarsQuery;
 import com.doumee.dao.admin.response.CarsDTO;
+import com.doumee.dao.admin.response.MemberInfoDTO;
 import com.doumee.dao.business.CarsMapper;
 import com.doumee.dao.business.join.CarJoinMapper;
 import com.doumee.dao.business.join.ParkBookJoinMapper;
@@ -101,73 +102,24 @@
 
 
         IPage<Cars> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<Cars> queryWrapper = new QueryWrapper<>();
-        Utils.MP.blankToNull(pageWrap.getModel());
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(Cars::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(Cars::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(Cars::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(Cars::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEdirot() != null) {
-            queryWrapper.lambda().eq(Cars::getEdirot, pageWrap.getModel().getEdirot());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(Cars::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(Cars::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
-        if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(Cars::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(Cars::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getHkId() != null) {
-            queryWrapper.lambda().eq(Cars::getHkId, pageWrap.getModel().getHkId());
-        }
-        if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(Cars::getSortnum, pageWrap.getModel().getSortnum());
-        }
-        if (pageWrap.getModel().getCode() != null) {
-            queryWrapper.lambda().eq(Cars::getCode, pageWrap.getModel().getCode());
-        }
-        if (pageWrap.getModel().getParkId() != null) {
-            queryWrapper.lambda().eq(Cars::getParkId, pageWrap.getModel().getParkId());
-        }
-        if (pageWrap.getModel().getHkId2() != null) {
-            queryWrapper.lambda().eq(Cars::getHkId2, pageWrap.getModel().getHkId2());
-        }
-        if (pageWrap.getModel().getHkStatus() != null) {
-            queryWrapper.lambda().eq(Cars::getHkStatus, pageWrap.getModel().getHkStatus());
-        }
-        if (pageWrap.getModel().getHkDate() != null) {
-            queryWrapper.lambda().ge(Cars::getHkDate, Utils.Date.getStart(pageWrap.getModel().getHkDate()));
-            queryWrapper.lambda().le(Cars::getHkDate, Utils.Date.getEnd(pageWrap.getModel().getHkDate()));
-        }
-        if (pageWrap.getModel().getMemberId() != null) {
-            queryWrapper.lambda().eq(Cars::getMemberId, pageWrap.getModel().getMemberId());
-        }
-        if (pageWrap.getModel().getMemberUserId() != null) {
-            queryWrapper.lambda().eq(Cars::getMemberUserId, pageWrap.getModel().getMemberUserId());
-        }
-        if (pageWrap.getModel().getErpId() != null) {
-            queryWrapper.lambda().eq(Cars::getErpId, pageWrap.getModel().getErpId());
-        }
-        if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(Cars::getStatus, pageWrap.getModel().getStatus());
-        }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
-        return PageData.from(carsMapper.selectPage(page, queryWrapper));
+        MPJLambdaWrapper<Cars> queryWrapper = new MPJLambdaWrapper<>();
+
+        queryWrapper.selectAll(Cars.class);
+        queryWrapper.selectAs(Parks::getName,Cars::getParksName);
+        queryWrapper.selectAs(Member::getType,Cars::getMemberType);
+        queryWrapper.selectAs(Member::getName,Cars::getMemberName);
+        queryWrapper.selectAs(Member::getPhone,Cars::getMemberPhone);
+        queryWrapper.selectAs(Company::getName,Cars::getCompanyName);
+
+        queryWrapper.leftJoin(Parks.class,Parks::getId,Cars::getParkId);
+        queryWrapper.leftJoin(Member.class,Member::getId,Cars::getMemberId);
+        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
+
+        queryWrapper.eq(Cars::getIsdeleted,Constants.ZERO);
+
+        queryWrapper.orderByDesc(Cars::getCreateDate);
+        IPage<Cars> result = carJoinMapper.selectJoinPage(page, Cars.class,queryWrapper);
+        return PageData.from(result);
     }
 
     @Override
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
index 6b0577f..4ff5d86 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
@@ -6,6 +6,7 @@
 import cn.hutool.core.util.ReUtil;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.admin.request.DeviceEventQuery;
 import com.doumee.dao.admin.response.DeviceEventDTO;
@@ -14,19 +15,24 @@
 import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.DeviceEvent;
 import com.doumee.dao.business.model.Member;
+import com.doumee.dao.system.SystemDictDataMapper;
+import com.doumee.dao.system.model.SystemDictData;
+import com.doumee.dao.system.vo.SystemDictDataListVO;
 import com.doumee.service.business.DeviceEventService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.sun.org.apache.xerces.internal.xs.StringList;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 闂ㄧ浜嬩欢鎺ㄩ�佽褰曡〃Service瀹炵幇
@@ -42,6 +48,9 @@
 
     @Autowired
     private DeviceEventJoinMapper deviceEventJoinMapper;
+
+    @Autowired
+    private SystemDictDataMapper systemDictDataMapper;
 
     @Override
     public Integer create(DeviceEvent deviceEvent) {
@@ -322,6 +331,37 @@
                                                 pageWrap.getModel().getEndTime());
         queryWrapper.orderByDesc(DeviceEvent::getHappenTime);
         IPage<DeviceEventDTO> deviceEventDTOIPage = deviceEventJoinMapper.selectJoinPage(page, DeviceEventDTO.class, queryWrapper);
+        if(null != deviceEventDTOIPage && deviceEventDTOIPage.getRecords().size() > 0) {
+            deviceEventDTOIPage.setRecords(newDeviceEvent(deviceEventDTOIPage.getRecords()));
+        }
         return PageData.from(deviceEventDTOIPage);
     }
+
+    // 瀵瑰浘鐗囪繘琛屽垽鏂鐞�
+    private List<DeviceEventDTO> newDeviceEvent(List<DeviceEventDTO> DeviceEventDTOList) {
+        List<DeviceEventDTO> newDeviceEventDTOS = new ArrayList<>();
+        for (DeviceEventDTO dto:DeviceEventDTOList) {
+           if(StringUtils.isNotBlank(dto.getExtEventPictureURL())) {
+               String extEventPictureURL = dto.getExtEventPictureURL();
+               // 浣跨敤split("/")灏哢RL鎸夌収"/"杩涜鍒嗗壊鎴愬涓儴鍒�
+               String[] parts = extEventPictureURL.split("\\\\");
+               String newStr = parts[0];
+               boolean number = Validator.isNumber(newStr);
+               if(number) {
+                   List<String> codes = Arrays.asList(Constants.FTP_RESOURCE_PATH,Constants.DEVICE_EVENT_IMG);
+                   List<SystemDictData> list = systemDictDataMapper.list(codes);
+                   if(null != list && list.size() > 0) {
+                       Map<String,SystemDictData> dataMap = list.stream().collect(Collectors.toMap(SystemDictData::getLabel, Function.identity()));
+                       dto.setExtEventPictureURL(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
+                                                 +dataMap.get(Constants.DEVICE_EVENT_IMG).getCode()
+                                                 +dto.getExtEventPictureURL());
+                   }
+               }else {
+                   dto.setExtEventPictureURL(null);
+               }
+           }
+            newDeviceEventDTOS.add(dto);
+        }
+        return newDeviceEventDTOS;
+    }
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
index 870df5f..1deb2ac 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -56,7 +56,7 @@
                 .eq(DeviceRole::getStatus,Constants.ONE);
         List<DeviceRole> deviceRoles = deviceRoleMapper.selectList(query);
         if (CollectionUtils.isNotEmpty(deviceRoles) && Constants.equalsInteger(Constants.ONE,deviceRole.getStatus())){
-            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍚屼竴涓敤鎴风被鍨嬶紝鍙兘鏈変竴涓粯璁よ鑹�");
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"绠$悊鍐呴儴鍛樺伐鍙兘鏈変竴涓粯璁ら棬绂佺粍");
         }
 
         LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
@@ -113,7 +113,7 @@
                 .eq(DeviceRole::getStatus,Constants.ONE);
         List<DeviceRole> deviceRoles = deviceRoleMapper.selectList(query);
         if (CollectionUtils.isNotEmpty(deviceRoles) && Constants.equalsInteger(Constants.ONE,deviceRole.getStatus())){
-            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍚屼竴涓敤鎴风被鍨嬶紝鍙兘鏈変竴涓粯璁よ鑹�");
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"绠$悊鍐呴儴鍛樺伐鍙兘鏈変竴涓粯璁ら棬绂佺粍");
         }
         deviceRole.setIsDefault(Constants.equalsInteger(Constants.ONE,deviceRole.getStatus()) ? 0 : 1);
         deviceRoleMapper.updateById(deviceRole);
@@ -128,7 +128,7 @@
                 .eq(DeviceRole::getStatus,Constants.ONE);
         List<DeviceRole> deviceRoles = deviceRoleMapper.selectList(query);
         if (CollectionUtils.isNotEmpty(deviceRoles) && Constants.equalsInteger(Constants.ONE,deviceRole.getStatus())){
-            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍚屼竴涓敤鎴风被鍨嬶紝鍙兘鏈変竴涓粯璁よ鑹�");
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"绠$悊鍐呴儴鍛樺伐鍙兘鏈変竴涓粯璁ら棬绂佺粍");
         }
         LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
         DeviceRole update = new DeviceRole();
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
index c90c76f..cdf4578 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
@@ -13,7 +14,9 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.DeviceMapper;
+import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.Device;
+import com.doumee.dao.business.model.Retention;
 import com.doumee.service.business.DeviceService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -28,6 +31,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 璁惧淇℃伅琛⊿ervice瀹炵幇
@@ -97,6 +101,18 @@
         QueryWrapper<Device> wrapper = new QueryWrapper<>(device);
         return deviceMapper.selectList(wrapper);
     }
+
+    @Override
+    public List<Device> findIdAndNameList(Device param) {
+        LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>(param);
+        wrapper.select(Device::getId, Device::getName);
+        if(null != param.getType() && null != param.getIsdeleted() && null != param.getHkStatus()) {
+            wrapper.eq(Device::getType,param.getType())
+                   .eq(Device::getIsdeleted,param.getIsdeleted())
+                   .eq(Device::getHkStatus,param.getHkStatus());
+        }
+        return deviceMapper.selectList(wrapper);
+    }
   
     @Override
     public PageData<Device> findPage(PageWrap<Device> pageWrap) {
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
index 691c146..c8ab1a8 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
@@ -2,14 +2,18 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.ParkBookMapper;
-import com.doumee.dao.business.model.ParkBook;
+import com.doumee.dao.business.join.ParkBookJoinMapper;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.ParkBookService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -26,6 +30,11 @@
 
     @Autowired
     private ParkBookMapper parkBookMapper;
+
+    @Autowired
+    private ParkBookJoinMapper parkBookJoinMapper;
+
+
 
     @Override
     public Integer create(ParkBook parkBook) {
@@ -87,81 +96,28 @@
     @Override
     public PageData<ParkBook> findPage(PageWrap<ParkBook> pageWrap) {
         IPage<ParkBook> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<ParkBook> queryWrapper = new QueryWrapper<>();
-        Utils.MP.blankToNull(pageWrap.getModel());
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(ParkBook::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(ParkBook::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(ParkBook::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(ParkBook::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEdirot() != null) {
-            queryWrapper.lambda().eq(ParkBook::getEdirot, pageWrap.getModel().getEdirot());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(ParkBook::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(ParkBook::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
-        if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(ParkBook::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(ParkBook::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getHkId() != null) {
-            queryWrapper.lambda().eq(ParkBook::getHkId, pageWrap.getModel().getHkId());
-        }
-        if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(ParkBook::getSortnum, pageWrap.getModel().getSortnum());
-        }
-        if (pageWrap.getModel().getVisitId() != null) {
-            queryWrapper.lambda().eq(ParkBook::getVisitId, pageWrap.getModel().getVisitId());
-        }
-        if (pageWrap.getModel().getCarCode() != null) {
-            queryWrapper.lambda().eq(ParkBook::getCarCode, pageWrap.getModel().getCarCode());
-        }
-        if (pageWrap.getModel().getParkId() != null) {
-            queryWrapper.lambda().eq(ParkBook::getParkId, pageWrap.getModel().getParkId());
-        }
-        if (pageWrap.getModel().getOrigin() != null) {
-            queryWrapper.lambda().eq(ParkBook::getOrigin, pageWrap.getModel().getOrigin());
-        }
-        if (pageWrap.getModel().getStartTime() != null) {
-            queryWrapper.lambda().ge(ParkBook::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTime()));
-            queryWrapper.lambda().le(ParkBook::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTime()));
-        }
-        if (pageWrap.getModel().getEndTime() != null) {
-            queryWrapper.lambda().ge(ParkBook::getEndTime, Utils.Date.getStart(pageWrap.getModel().getEndTime()));
-            queryWrapper.lambda().le(ParkBook::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTime()));
-        }
-        if (pageWrap.getModel().getMemberId() != null) {
-            queryWrapper.lambda().eq(ParkBook::getMemberId, pageWrap.getModel().getMemberId());
-        }
-        if (pageWrap.getModel().getTimeType() != null) {
-            queryWrapper.lambda().eq(ParkBook::getTimeType, pageWrap.getModel().getTimeType());
-        }
-        if (pageWrap.getModel().getHkId2() != null) {
-            queryWrapper.lambda().eq(ParkBook::getHkId2, pageWrap.getModel().getHkId2());
-        }
-        if (pageWrap.getModel().getHkStatus() != null) {
-            queryWrapper.lambda().eq(ParkBook::getHkStatus, pageWrap.getModel().getHkStatus());
-        }
-        if (pageWrap.getModel().getHkDate() != null) {
-            queryWrapper.lambda().ge(ParkBook::getHkDate, Utils.Date.getStart(pageWrap.getModel().getHkDate()));
-            queryWrapper.lambda().le(ParkBook::getHkDate, Utils.Date.getEnd(pageWrap.getModel().getHkDate()));
-        }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
-        return PageData.from(parkBookMapper.selectPage(page, queryWrapper));
+        MPJLambdaWrapper<ParkBook> queryWrapper = new MPJLambdaWrapper<>();
+
+        queryWrapper.selectAll(Cars.class);
+        queryWrapper.selectAs(Parks::getName,Cars::getParksName);
+        queryWrapper.selectAs(Member::getType,Cars::getMemberType);
+        queryWrapper.selectAs(Member::getName,Cars::getMemberName);
+        queryWrapper.selectAs(Member::getPhone,Cars::getMemberPhone);
+        queryWrapper.selectAs(Company::getName,Cars::getCompanyName);
+
+        queryWrapper.leftJoin(Parks.class,Parks::getId,ParkBook::getParkId);
+        queryWrapper.leftJoin(Member.class,Member::getId,ParkBook::getMemberId);
+        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
+
+        queryWrapper.eq(ParkBook::getIsdeleted, Constants.ZERO)
+          .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getPhone,pageWrap.getModel().getMemberName())
+                .or().like(Member::getName,pageWrap.getModel().getMemberName()));
+        queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCarCode()),ParkBook::getCarCode,pageWrap.getModel().getCarCode());
+        queryWrapper.orderByDesc(ParkBook::getCreateDate);
+
+        IPage<ParkBook> result = parkBookJoinMapper.selectJoinPage(page, ParkBook.class,queryWrapper);
+
+        return PageData.from(result);
     }
 
     @Override
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java
index a49f837..95e889d 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java
@@ -2,19 +2,26 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.admin.response.MemberInfoDTO;
 import com.doumee.dao.business.ParksMapper;
+import com.doumee.dao.business.join.ParksJoinMapper;
+import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Parks;
 import com.doumee.service.business.ParksService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 鍋滆溅搴撲俊鎭〃Service瀹炵幇
@@ -26,6 +33,10 @@
 
     @Autowired
     private ParksMapper parksMapper;
+
+    @Autowired
+    private ParksJoinMapper parksJoinMapper;
+
 
     @Override
     public Integer create(Parks parks) {
@@ -80,83 +91,29 @@
 
     @Override
     public List<Parks> findList(Parks parks) {
-        QueryWrapper<Parks> wrapper = new QueryWrapper<>(parks);
-        return parksMapper.selectList(wrapper);
+        MPJLambdaWrapper<Parks> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.isNull(Parks::getParentHkId);
+        queryWrapper.eq(Parks::getIsdeleted,Constants.ZERO);
+        queryWrapper.orderByDesc(Parks::getCreateDate);
+        return parksMapper.selectList(queryWrapper);
     }
   
     @Override
     public PageData<Parks> findPage(PageWrap<Parks> pageWrap) {
         IPage<Parks> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<Parks> queryWrapper = new QueryWrapper<>();
-        Utils.MP.blankToNull(pageWrap.getModel());
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(Parks::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(Parks::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(Parks::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(Parks::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEdirot() != null) {
-            queryWrapper.lambda().eq(Parks::getEdirot, pageWrap.getModel().getEdirot());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(Parks::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(Parks::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
-        if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(Parks::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(Parks::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(Parks::getName, pageWrap.getModel().getName());
-        }
-        if (pageWrap.getModel().getHkId() != null) {
-            queryWrapper.lambda().eq(Parks::getHkId, pageWrap.getModel().getHkId());
-        }
-        if (pageWrap.getModel().getHkStatus() != null) {
-            queryWrapper.lambda().eq(Parks::getHkStatus, pageWrap.getModel().getHkStatus());
-        }
-        if (pageWrap.getModel().getHkDate() != null) {
-            queryWrapper.lambda().ge(Parks::getHkDate, Utils.Date.getStart(pageWrap.getModel().getHkDate()));
-            queryWrapper.lambda().le(Parks::getHkDate, Utils.Date.getEnd(pageWrap.getModel().getHkDate()));
-        }
-        if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(Parks::getSortnum, pageWrap.getModel().getSortnum());
-        }
-        if (pageWrap.getModel().getParkCreateDate() != null) {
-            queryWrapper.lambda().ge(Parks::getParkCreateDate, Utils.Date.getStart(pageWrap.getModel().getParkCreateDate()));
-            queryWrapper.lambda().le(Parks::getParkCreateDate, Utils.Date.getEnd(pageWrap.getModel().getParkCreateDate()));
-        }
-        if (pageWrap.getModel().getParentHkId() != null) {
-            queryWrapper.lambda().eq(Parks::getParentHkId, pageWrap.getModel().getParentHkId());
-        }
-        if (pageWrap.getModel().getParkEditDate() != null) {
-            queryWrapper.lambda().ge(Parks::getParkEditDate, Utils.Date.getStart(pageWrap.getModel().getParkEditDate()));
-            queryWrapper.lambda().le(Parks::getParkEditDate, Utils.Date.getEnd(pageWrap.getModel().getParkEditDate()));
-        }
-        if (pageWrap.getModel().getErpStatus() != null) {
-            queryWrapper.lambda().eq(Parks::getErpStatus, pageWrap.getModel().getErpStatus());
-        }
-        if (pageWrap.getModel().getErpDate() != null) {
-            queryWrapper.lambda().ge(Parks::getErpDate, Utils.Date.getStart(pageWrap.getModel().getErpDate()));
-            queryWrapper.lambda().le(Parks::getErpDate, Utils.Date.getEnd(pageWrap.getModel().getErpDate()));
-        }
-        if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(Parks::getStatus, pageWrap.getModel().getStatus());
-        }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
-        return PageData.from(parksMapper.selectPage(page, queryWrapper));
+        MPJLambdaWrapper<Parks> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(Parks.class);
+        queryWrapper.select(" p.name as parentName");
+
+        queryWrapper.leftJoin(" parks p on p.id=t.PARENT_HK_ID");
+
+        queryWrapper.isNotNull(Parks::getParentHkId);
+        queryWrapper.eq(Parks::getIsdeleted, Constants.ZERO);
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Parks::getName,pageWrap.getModel().getName());
+        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getParentHkId()),Parks::getName,pageWrap.getModel().getParentHkId());
+        queryWrapper.orderByDesc(Parks::getCreateDate);
+        IPage<Parks> result = parksJoinMapper.selectJoinPage(page, Parks.class,queryWrapper);
+        return PageData.from(result);
     }
 
     @Override
diff --git a/server/dmvisit_service/src/main/resources/mappers/SystemDictDataMapper.xml b/server/dmvisit_service/src/main/resources/mappers/SystemDictDataMapper.xml
index 6de601b..ae3a515 100644
--- a/server/dmvisit_service/src/main/resources/mappers/SystemDictDataMapper.xml
+++ b/server/dmvisit_service/src/main/resources/mappers/SystemDictDataMapper.xml
@@ -29,5 +29,19 @@
       </if>
     </where>
   </select>
+  <select id="list" resultType="com.doumee.dao.system.vo.SystemDictDataListVO">
+    SELECT
+      dict_data.`ID`, dict_data.`DICT_ID`, dict_data.`CODE`, dict_data.`LABEL`
+    FROM SYSTEM_DICT_DATA dict_data
+    <where>
+      dict_data.DELETED = 0
+      <if test="codes != null and codes.size > 0">
+        AND dict_data.`LABEL` in
+        <foreach collection="codes" index="index" item="code" open="(" separator="," close=")">
+          #{code}
+        </foreach>
+      </if>
+    </where>
+  </select>
 
 </mapper>

--
Gitblit v1.9.3