From 6e7b6dbd76c9c6356e5846c5bb82a132a3f731db Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 29 九月 2025 17:07:20 +0800
Subject: [PATCH] 最新版本541200007

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java           |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java       |  242 ++++++++++++++++++++++++++++++----
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java                   |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java       |    8 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java               |   20 +-
 server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java                               |    1 
 server/system_timer/src/main/resources/bootstrap.yml                                                           |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java                     |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java                |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java               |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java               |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java                     |    6 
 server/system_timer/src/main/resources/application-dev.yml                                                     |    4 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java                    |   35 +++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java                     |   22 ++
 16 files changed, 304 insertions(+), 62 deletions(-)

diff --git a/server/system_timer/src/main/resources/application-dev.yml b/server/system_timer/src/main/resources/application-dev.yml
index 32ebed1..ce7c96f 100644
--- a/server/system_timer/src/main/resources/application-dev.yml
+++ b/server/system_timer/src/main/resources/application-dev.yml
@@ -1,9 +1,9 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://112.26.66.25:3306/wuhuyancao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+    url: jdbc:mysql://192.168.0.211:3306/wuhuyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Doumee@168&QWERT
+    password: Doumee@168
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:
diff --git a/server/system_timer/src/main/resources/bootstrap.yml b/server/system_timer/src/main/resources/bootstrap.yml
index 05a83ce..107b53b 100644
--- a/server/system_timer/src/main/resources/bootstrap.yml
+++ b/server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: pro
+    active: dev
   application:
     name: systemTimer
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
index 05108b1..61fc5b9 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
@@ -19,7 +19,6 @@
 @MapperScan("com.doumee.dao.*")
 @EnableDiscoveryClient
 public class VisitsAdminApplication {
-
     public static void main(String[] args) {
         ApplicationContext context = SpringApplication.run(VisitsAdminApplication.class);
         context.getEnvironment();
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
index db3b2b7..65d569e 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -15,7 +15,10 @@
 import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
+import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
 import com.doumee.core.haikang.service.HKService;
+import com.doumee.dao.web.response.platformReport.CarmeraListVO;
+import com.doumee.service.business.third.BoardService;
 import com.doumee.service.business.third.model.ApiResponse;
 import com.doumee.service.business.third.model.LoginUserInfo;
 import com.doumee.core.utils.Constants;
@@ -54,6 +57,8 @@
     private HkSyncPlatformsServiceImpl hkSyncPlatformsService;
     @Autowired
     private HkSyncDeviceServiceImpl hkSyncDeviceService;
+    @Autowired
+    private BoardService boardService;
     @Autowired
     private HkSyncParkServiceImpl hkSyncParkService;
     @Autowired
@@ -293,6 +298,36 @@
         return ApiResponse.success(result);
     }
 
+    @ApiOperation("銆愭捣搴枫�戣幏鍙栧叏閮ㄧ洃鎺у尯鍩熸爲褰㈢粨鏋�")
+    @PostMapping("/regionList")
+    public ApiResponse<List<PageRegionInfoResponse> > getRegionList(HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token ){
+        CarmeraListVO param  =new CarmeraListVO();
+        param.setWithCameras(0);
+        List<PageRegionInfoResponse>  result = new ArrayList<>();
+        try {
+//            result = boardService.getRegionTree( param);
+            //------TODO---------娴嬭瘯妯℃嫙鏁版嵁----start-----
+            for (int i = 0; i < 5; i++) {
+                PageRegionInfoResponse t = new PageRegionInfoResponse();
+                t.setName("鎬诲尯鍩焈"+i);
+                t.setIndexCode(i+"_code");
+                t.setChildList(new ArrayList<>());
+                for (int j = 0; j < 5; j++) {
+                    PageRegionInfoResponse t1 = new PageRegionInfoResponse();
+                    t1.setName("瀛愬尯鍩焈"+i+"_"+j);
+                    t1.setIndexCode(i+"_"+j+"_ChildCode");
+                    t1.setParentIndexCode(t.getIndexCode());
+                    t.getChildList().add(t1);
+                }
+                result.add(t);
+            }
+            //------TODO---------娴嬭瘯妯℃嫙鏁版嵁----end-----
+        }catch (Exception e){
+
+        }
+        return ApiResponse.success(result);
+    }
+
 
 
     @ApiOperation("銆愭捣搴枫�戣缃甃ED灞忔枃妗�")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java
index 2a11d69..68ef420 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java
@@ -85,6 +85,12 @@
     public ApiResponse<PageData<Warning>> findPage (@RequestBody PageWrap<Warning> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         return ApiResponse.success(warningService.findPage(pageWrap));
     }
+    @ApiOperation("鏌ヨ鍏ㄩ儴")
+    @PostMapping("/allList")
+    @CloudRequiredPermission("business:warning:query")
+    public ApiResponse<List<Warning>> findPage (@RequestBody Warning pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(warningService.findList(pageWrap));
+    }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java
index 0e5342b..fd27a20 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java
@@ -35,35 +35,37 @@
     @ApiOperation("鏂板缓")
     @PostMapping("/create")
     @CloudRequiredPermission("business:warningrule:create")
-    public ApiResponse create(@RequestBody WarningRule warningRule) {
+    public ApiResponse create(@RequestBody WarningRule warningRule, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        warningRule.setLoginUserInfo(this.getLoginUser(token));
         return ApiResponse.success(warningRuleService.create(warningRule));
     }
 
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
     @CloudRequiredPermission("business:warningrule:delete")
-    public ApiResponse deleteById(@PathVariable Integer id) {
-        warningRuleService.deleteById(id);
+    public ApiResponse deleteById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        warningRuleService.deleteById(id,this.getLoginUser(token));
         return ApiResponse.success(null);
     }
 
     @ApiOperation("鎵归噺鍒犻櫎")
     @GetMapping("/delete/batch")
     @CloudRequiredPermission("business:warningrule:delete")
-    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         String [] idArray = ids.split(",");
         List<Integer> idList = new ArrayList<>();
         for (String id : idArray) {
             idList.add(Integer.valueOf(id));
         }
-        warningRuleService.deleteByIdInBatch(idList);
+        warningRuleService.deleteByIdInBatch(idList,this.getLoginUser(token));
         return ApiResponse.success(null);
     }
 
     @ApiOperation("鏍规嵁ID淇敼")
     @PostMapping("/updateById")
     @CloudRequiredPermission("business:warningrule:update")
-    public ApiResponse updateById(@RequestBody WarningRule warningRule) {
+    public ApiResponse updateById(@RequestBody WarningRule warningRule, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+      warningRule.setLoginUserInfo(this.getLoginUser(token));
         warningRuleService.updateById(warningRule);
         return ApiResponse.success(null);
     }
@@ -71,21 +73,21 @@
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
     @CloudRequiredPermission("business:warningrule:query")
-    public ApiResponse<PageData<WarningRule>> findPage (@RequestBody PageWrap<WarningRule> pageWrap) {
+    public ApiResponse<PageData<WarningRule>> findPage (@RequestBody PageWrap<WarningRule> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         return ApiResponse.success(warningRuleService.findPage(pageWrap));
     }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @CloudRequiredPermission("business:warningrule:exportExcel")
-    public void exportExcel (@RequestBody PageWrap<WarningRule> pageWrap, HttpServletResponse response) {
+    public void exportExcel (@RequestBody PageWrap<WarningRule> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         ExcelExporter.build(WarningRule.class).export(warningRuleService.findPage(pageWrap).getRecords(), "鎶ヨ瑙勫垯閰嶇疆琛�", response);
     }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
     @CloudRequiredPermission("business:warningrule:query")
-    public ApiResponse findById(@PathVariable Integer id) {
+    public ApiResponse findById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         return ApiResponse.success(warningRuleService.findById(id));
     }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java
index cd65c05..307d0c2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java
@@ -2,11 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.WarningRuleDetail;
+import com.github.yulichang.base.MPJBaseMapper;
 
 /**
  * @author 姹熻箘韫�
  * @date 2025/09/28 09:01
  */
-public interface WarningRuleDetailMapper extends BaseMapper<WarningRuleDetail> {
+public interface WarningRuleDetailMapper extends MPJBaseMapper<WarningRuleDetail> {
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java
index b1bb01c..8a949c7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java
@@ -2,11 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.WarningRule;
+import com.github.yulichang.base.MPJBaseMapper;
 
 /**
  * @author 姹熻箘韫�
  * @date 2025/09/28 09:01
  */
-public interface WarningRuleMapper extends BaseMapper<WarningRule> {
+public interface WarningRuleMapper extends MPJBaseMapper<WarningRule> {
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java
index 11d4da6..b21a53d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java
@@ -67,7 +67,7 @@
     private String content;
 
     @ApiModelProperty(value = "鐘舵�� 0鏈帹閫� 1鎺ㄩ�佹垚鍔�2鎺ㄩ�佸け璐�", example = "1")
-    @ExcelColumn(name="閫氱煡鐘舵��",valueMapping = "0=鏈�氱煡;1=閫氱煡鎴愬姛;2=閫氱煡澶辫触;",index = 7)
+    @ExcelColumn(name="閫氱煡鐘舵��",valueMapping = "0=鏈�氱煡;1=閫氱煡鎴愬姛;2=閫氱煡澶辫触;",index = 8)
     private Integer status;
 
     @ApiModelProperty(value = "鎺ㄩ�佺粨鏋�", example = "1")
@@ -109,6 +109,10 @@
     @ExcelColumn(name="閫氱煡浜哄憳",index = 6)
     @TableField(exist = false)
     private String memberName;
+    @ApiModelProperty(value = "浜哄憳閮ㄩ棬", example = "1")
+    @ExcelColumn(name="浜哄憳閮ㄩ棬",index = 7)
+    @TableField(exist = false)
+    private String companyName;
 
 
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java
index f383679..15d91c5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.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 com.doumee.service.business.third.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
@@ -10,6 +11,7 @@
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 鎶ヨ瑙勫垯閰嶇疆琛�
@@ -31,7 +33,6 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -40,7 +41,6 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
@@ -50,10 +50,13 @@
     @ApiModelProperty(value = "澶囨敞")
     @ExcelColumn(name="澶囨敞")
     private String info;
+    @ApiModelProperty(value = "瑙勫垯鏍囬")
+    @ExcelColumn(name="瑙勫垯鏍囬")
+    private String title;
 
-    @ApiModelProperty(value = "鍐呴儴浜哄憳缂栫爜锛堝叧鑱攎ember)", example = "1")
-    @ExcelColumn(name="鍐呴儴浜哄憳缂栫爜锛堝叧鑱攎ember)")
-    private Integer memberId;
+    @ApiModelProperty(value = "鍐呴儴浜哄憳缂栫爜闆嗗悎锛堝叧鑱攎ember)锛屽涓嫳鏂囬�楀彿闅斿紑", example = "1")
+    @ExcelColumn(name="鍐呴儴浜哄憳缂栫爜闆嗗悎锛堝叧鑱攎ember)")
+    private String memberIds;
 
     @ApiModelProperty(value = "澶氳鍒欓棿闅旀椂闂�(绉掞級", example = "1")
     @ExcelColumn(name="澶氳鍒欓棿闅旀椂闂�(绉掞級")
@@ -71,4 +74,13 @@
     @ExcelColumn(name="鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�")
     private Integer warningId;
 
+    @ApiModelProperty(value = "閫氱煡浜哄憳-閮ㄩ棬闆嗗悎锛屽涓嫳鏂囧垎鍙烽殧寮�", example = "1")
+    private String memberNames;
+    @ApiModelProperty(value = "浜哄憳閮ㄩ棬", example = "1")
+    @TableField(exist = false)
+    private String companyName;
+    @ApiModelProperty(value = "浜哄憳閮ㄩ棬", example = "1")
+    @TableField(exist = false)
+    private List<WarningRuleDetail> detailList;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java
index 09d8952..91650b4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java
@@ -59,9 +59,9 @@
     @ExcelColumn(name="鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�")
     private Integer warningId;
 
-    @ApiModelProperty(value = "澶氳鍒欓棿闅旀椂闂�(绉掞級", example = "1")
-    @ExcelColumn(name="澶氳鍒欓棿闅旀椂闂�(绉掞級")
-    private Integer regionCode;
+    @ApiModelProperty(value = "鍖哄煙缂栫爜", example = "1")
+    @ExcelColumn(name="鍖哄煙缂栫爜")
+    private String regionCode;
 
     @ApiModelProperty(value = "鎺掑簭鐮�")
     @ExcelColumn(name="鎺掑簭鐮�")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java
index b553486..50e5af2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business;
 
+import com.doumee.service.business.third.model.LoginUserInfo;
 import com.doumee.service.business.third.model.PageData;
 import com.doumee.service.business.third.model.PageWrap;
 import com.doumee.dao.business.model.WarningRule;
@@ -25,7 +26,7 @@
      *
      * @param id 涓婚敭
      */
-    void deleteById(Integer id);
+    void deleteById(Integer id,LoginUserInfo user);
 
     /**
      * 鍒犻櫎
@@ -39,7 +40,7 @@
      *
      * @param ids 涓婚敭闆�
      */
-    void deleteByIdInBatch(List<Integer> ids);
+    void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user);
 
     /**
      * 涓婚敭鏇存柊
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java
index afc5810..c823b67 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java
@@ -1,14 +1,11 @@
 package com.doumee.service.business.impl;
 
 import com.doumee.core.utils.Constants;
-import com.doumee.dao.business.model.Visits;
-import com.doumee.dao.business.model.Warning;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.third.model.PageData;
 import com.doumee.service.business.third.model.PageWrap;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.WarningPushMapper;
-import com.doumee.dao.business.model.WarningPush;
-import com.doumee.dao.business.model.Member;
 import com.doumee.service.business.WarningPushService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -99,14 +96,17 @@
         pageWrap.getModel().setIsdeleted(Constants.ZERO);
         queryWrapper.selectAll(WarningPush.class )
                 .selectAs(Member::getName,WarningPush::getMemberName)
+                .selectAs(Company::getName,WarningPush::getCompanyName)
                 .selectAs(Warning::getName,WarningPush::getWarningName)
                 .selectAs(Warning::getType,WarningPush::getWarningType)
                 .selectAs(Warning::getLevel,WarningPush::getWarningLevel)
                 .leftJoin(Member.class,Member::getId,WarningPush::getMemberId)
+                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                 .leftJoin(Warning.class,Warning::getId,WarningPush::getWarningId);
         queryWrapper.eq(pageWrap.getModel().getWarningType()!=null,Warning::getType, pageWrap.getModel().getWarningType());
         queryWrapper.eq(pageWrap.getModel().getWarningLevel()!=null,Warning::getLevel, pageWrap.getModel().getWarningLevel());
         queryWrapper.eq(pageWrap.getModel().getWarningLevel()!=null,Warning::getLevel, pageWrap.getModel().getWarningLevel());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName, pageWrap.getModel().getMemberName());
         queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStarttime()), WarningPush::getCreateDate,Utils.Date.getStart(pageWrap.getModel().getQueryStarttime()));
         queryWrapper.le(Objects.nonNull(pageWrap.getModel().getQueryEndtime()),WarningPush::getCreateDate,Utils.Date.getEnd(pageWrap.getModel().getQueryEndtime()));
         if (pageWrap.getModel().getId() != null) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java
index 9b713aa..87fe604 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java
@@ -1,20 +1,34 @@
 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.utils.Constants;
+import com.doumee.dao.business.WarningMapper;
+import com.doumee.dao.business.WarningRuleDetailMapper;
+import com.doumee.dao.business.dao.MemberMapper;
+import com.doumee.dao.business.model.*;
+import com.doumee.service.business.third.model.LoginUserInfo;
 import com.doumee.service.business.third.model.PageData;
 import com.doumee.service.business.third.model.PageWrap;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.WarningRuleMapper;
-import com.doumee.dao.business.model.WarningRule;
 import com.doumee.service.business.WarningRuleService;
 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.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 鎶ヨ瑙勫垯閰嶇疆琛⊿ervice瀹炵幇
@@ -26,16 +40,105 @@
 
     @Autowired
     private WarningRuleMapper warningRuleMapper;
+    @Autowired
+    private WarningMapper warningMapper;
+    @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
+    private WarningRuleDetailMapper warningRuleDetailMapper;
 
     @Override
-    public Integer create(WarningRule warningRule) {
-        warningRuleMapper.insert(warningRule);
-        return warningRule.getId();
+    @Transactional
+    public Integer create(WarningRule warning) {
+        if(warning.getDetailList() == null
+                ||warning.getMemberIds() == null
+                ||warning.getDetailList().size() ==0){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        warning.setStatus(Constants.formatIntegerNum(warning.getStatus()));
+        warning.setIsdeleted(Constants.ZERO);
+        warning.setCreator(warning.getLoginUserInfo().getId());
+        warning.setCreateDate(new Date());
+        warning.setEditDate(warning.getCreateDate());
+        warning.setEditor(warning.getCreator());
+        String title = "";
+        for(WarningRuleDetail detail : warning.getDetailList()){
+            if(detail.getWarningId() == null){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST);
+            }
+            Warning  wModel = warningMapper.selectById(detail.getWarningId());
+            if(wModel == null || Constants.equalsInteger(wModel.getIsdeleted(),Constants.ONE)){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇烽�夋嫨姝g‘鐨勬姤璀︾被鍨�");
+            }
+            if(StringUtils.isNotBlank(detail.getRegionName())){
+                title+= detail.getRegionName()+"鍙戠敓";
+            }
+            title += wModel.getName()+"锛� ";
+            detail.setRuleId(warning.getId());
+            detail.setIsdeleted(Constants.ZERO);
+            detail.setCreator(warning.getLoginUserInfo().getId());
+            detail.setCreateDate(new Date());
+            detail.setEditDate(warning.getCreateDate());
+            detail.setEditor(warning.getCreator());
+        }
+
+        warning.setMemberNames( initMemberInfo(warning));
+        warning.setTitle(title);
+        warningRuleMapper.insert(warning);
+        for(WarningRuleDetail detail : warning.getDetailList()){
+            detail.setRuleId(warning.getId());
+        }
+        warningRuleDetailMapper.insert(warning.getDetailList());
+        return warning.getId();
+    }
+
+    private String initMemberInfo(WarningRule warning) {
+        String[] members = warning.getMemberIds().split(",");
+        List<Integer> mIds = new ArrayList<>();
+        for(String str :members){
+            try {
+                mIds.add(Integer.parseInt(str));
+            }catch (Exception e){
+            }
+        }
+        if(mIds.size() ==0){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇烽�夋嫨姝g‘鐨勪汉鍛樹俊鎭�");
+        }
+        List<Member> memberList = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+                .selectAll(Member.class )
+                .selectAs(Company::getName,Member::getCompanyName )
+                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
+                .eq(Member::getIsdeleted,Constants.ZERO )
+                .in(Member::getId,mIds ));
+        if(memberList == null || memberList.size() ==0){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇烽�夋嫨姝g‘鐨勪汉鍛樹俊鎭�!");
+        }
+        String memberIds = "";
+        String memberNames = "";
+        for(Member m : memberList){
+            memberIds += (StringUtils.isNotBlank(memberIds)?",":"")+m.getId();
+            memberNames += StringUtils.defaultString(m.getName(),"")+"-"+StringUtils.defaultString(m.getCompanyName(),"" )+"; ";
+        }
+        warning.setMemberIds(memberIds);
+        warning.setMemberNames(memberNames);
+        return memberNames;
     }
 
     @Override
-    public void deleteById(Integer id) {
+    public void deleteById(Integer id, LoginUserInfo user) {
         warningRuleMapper.deleteById(id);
+        warningRuleMapper.update(null,new UpdateWrapper<WarningRule>().lambda()
+                .set(WarningRule::getEditor,user.getId())
+                .set(WarningRule::getEditDate,new Date())
+                .set(WarningRule::getIsdeleted,Constants.ONE)
+                .eq(WarningRule::getId,id)
+        );
+        warningRuleDetailMapper.update(null,new UpdateWrapper<WarningRuleDetail>().lambda()
+                .set(WarningRuleDetail::getEditor,user.getId())
+                .set(WarningRuleDetail::getEditDate,new Date())
+                .set(WarningRuleDetail::getIsdeleted,Constants.ONE)
+                .eq(WarningRuleDetail::getRuleId,id)
+        );
     }
 
     @Override
@@ -45,16 +148,64 @@
     }
 
     @Override
-    public void deleteByIdInBatch(List<Integer> ids) {
+    @Transactional
+    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
         if (CollectionUtils.isEmpty(ids)) {
             return;
         }
-        warningRuleMapper.deleteBatchIds(ids);
+        warningRuleMapper.update(null,new UpdateWrapper<WarningRule>().lambda()
+                .set(WarningRule::getEditor,user.getId())
+                .set(WarningRule::getEditDate,new Date())
+                .set(WarningRule::getIsdeleted,Constants.ONE)
+                .in(WarningRule::getId,ids)
+        );
+        warningRuleDetailMapper.update(null,new UpdateWrapper<WarningRuleDetail>().lambda()
+                .set(WarningRuleDetail::getEditor,user.getId())
+                .set(WarningRuleDetail::getEditDate,new Date())
+                .set(WarningRuleDetail::getIsdeleted,Constants.ONE)
+                .in(WarningRuleDetail::getRuleId,ids)
+        );
     }
 
     @Override
-    public void updateById(WarningRule warningRule) {
-        warningRuleMapper.updateById(warningRule);
+    public void updateById(WarningRule warning) {
+        if(warning.getDetailList() == null
+                ||warning.getId() == null
+                ||warning.getMemberIds() == null
+                || warning.getDetailList().size() ==0){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        warning.setEditDate(warning.getCreateDate());
+        warning.setEditor(warning.getCreator());
+        String title = "";
+        for(WarningRuleDetail detail : warning.getDetailList()){
+            if(detail.getWarningId() == null){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST);
+            }
+            Warning  wModel = warningMapper.selectById(detail.getWarningId());
+            if(wModel == null || Constants.equalsInteger(wModel.getIsdeleted(),Constants.ONE)){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇烽�夋嫨姝g‘鐨勬姤璀︾被鍨�");
+            }
+            if(StringUtils.isNotBlank(detail.getRegionName())){
+                title+= detail.getRegionName()+"鍙戠敓";
+            }
+            title += wModel.getName()+"锛� ";
+            detail.setRuleId(warning.getId());
+            detail.setIsdeleted(Constants.ZERO);
+            detail.setCreator(warning.getLoginUserInfo().getId());
+            detail.setCreateDate(new Date());
+            detail.setEditDate(warning.getCreateDate());
+            detail.setEditor(warning.getCreator());
+        }
+        warning.setMemberNames( initMemberInfo(warning));
+        warning.setTitle(title);
+        warningRuleMapper.updateById(warning);
+        for(WarningRuleDetail detail : warning.getDetailList()){
+            detail.setRuleId(warning.getId());
+        }
+        warningRuleDetailMapper.delete(new UpdateWrapper<WarningRuleDetail>()
+                        .lambda().eq(WarningRuleDetail::getRuleId,warning.getId()));
+        warningRuleDetailMapper.insert(warning.getDetailList());
     }
 
     @Override
@@ -69,7 +220,14 @@
 
     @Override
     public WarningRule findById(Integer id) {
-        return warningRuleMapper.selectById(id);
+        WarningRule model =warningRuleMapper.selectById(id);
+        if(model == null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        model.setDetailList(warningRuleDetailMapper.selectList(new LambdaQueryWrapper<WarningRuleDetail>()
+                .eq(WarningRuleDetail::getIsdeleted,Constants.ZERO)
+                .eq(WarningRuleDetail::getRuleId,model.getId())));
+        return model;
     }
 
     @Override
@@ -87,54 +245,74 @@
     @Override
     public PageData<WarningRule> findPage(PageWrap<WarningRule> pageWrap) {
         IPage<WarningRule> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<WarningRule> queryWrapper = new QueryWrapper<>();
+
+        MPJLambdaWrapper<WarningRule> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setIsdeleted(Constants.ZERO);
+        queryWrapper.selectAll(WarningRule.class );
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberNames()),WarningRule::getMemberNames, pageWrap.getModel().getMemberNames());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getTitle()),WarningRule::getTitle, pageWrap.getModel().getTitle());
+
         if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(WarningRule::getId, pageWrap.getModel().getId());
+            queryWrapper.eq(WarningRule::getId, pageWrap.getModel().getId());
         }
         if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(WarningRule::getCreator, pageWrap.getModel().getCreator());
+            queryWrapper.eq(WarningRule::getCreator, pageWrap.getModel().getCreator());
         }
         if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(WarningRule::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(WarningRule::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+            queryWrapper.ge(WarningRule::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(WarningRule::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
         }
         if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.lambda().eq(WarningRule::getEditor, pageWrap.getModel().getEditor());
+            queryWrapper.eq(WarningRule::getEditor, pageWrap.getModel().getEditor());
         }
         if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(WarningRule::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(WarningRule::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+            queryWrapper.ge(WarningRule::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(WarningRule::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
         }
         if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(WarningRule::getIsdeleted, pageWrap.getModel().getIsdeleted());
+            queryWrapper.eq(WarningRule::getIsdeleted, pageWrap.getModel().getIsdeleted());
         }
         if (pageWrap.getModel().getInfo() != null) {
-            queryWrapper.lambda().eq(WarningRule::getInfo, pageWrap.getModel().getInfo());
+            queryWrapper.eq(WarningRule::getInfo, pageWrap.getModel().getInfo());
         }
-        if (pageWrap.getModel().getMemberId() != null) {
-            queryWrapper.lambda().eq(WarningRule::getMemberId, pageWrap.getModel().getMemberId());
+        if (pageWrap.getModel().getMemberIds() != null) {
+            queryWrapper.eq(WarningRule::getMemberIds, pageWrap.getModel().getMemberIds());
         }
         if (pageWrap.getModel().getIntervalSec() != null) {
-            queryWrapper.lambda().eq(WarningRule::getIntervalSec, pageWrap.getModel().getIntervalSec());
+            queryWrapper.eq(WarningRule::getIntervalSec, pageWrap.getModel().getIntervalSec());
         }
         if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(WarningRule::getSortnum, pageWrap.getModel().getSortnum());
+            queryWrapper.eq(WarningRule::getSortnum, pageWrap.getModel().getSortnum());
         }
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(WarningRule::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.eq(WarningRule::getStatus, pageWrap.getModel().getStatus());
         }
         if (pageWrap.getModel().getWarningId() != null) {
-            queryWrapper.lambda().eq(WarningRule::getWarningId, pageWrap.getModel().getWarningId());
+            queryWrapper.eq(WarningRule::getWarningId, pageWrap.getModel().getWarningId());
         }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
+        queryWrapper.orderByDesc(WarningRule::getCreateDate);
+        IPage<WarningRule> result = warningRuleMapper.selectJoinPage(page, WarningRule.class,queryWrapper);
+        if(result.getRecords()!=null && result.getRecords().size()>0){
+            List<WarningRuleDetail> allList = warningRuleDetailMapper.selectList(new LambdaQueryWrapper<WarningRuleDetail>()
+                    .eq(WarningRuleDetail::getIsdeleted,Constants.ZERO));
+            for(WarningRule model :result.getRecords()){
+                model.setDetailList(getDetailListFromAll(allList,model.getId()));
             }
         }
-        return PageData.from(warningRuleMapper.selectPage(page, queryWrapper));
+        return PageData.from(result);
+    }
+
+    private List<WarningRuleDetail> getDetailListFromAll(List<WarningRuleDetail> allList, Integer id) {
+        List<WarningRuleDetail> list = new ArrayList<>();
+        if(allList!=null && allList.size()>0){
+            for(WarningRuleDetail d :allList){
+                if(Constants.equalsInteger(d.getRuleId(),id)){
+                    list.add(d);
+                }
+            }
+        }
+        return list;
     }
 
     @Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
index bfa22f9..6b7263d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
@@ -118,6 +118,7 @@
 
     @Override
     public List<Warning> findList(Warning warning) {
+        warning.setIsdeleted(Constants.ZERO);
         QueryWrapper<Warning> wrapper = new QueryWrapper<>(warning);
         return warningMapper.selectList(wrapper);
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index a53faca..aaad2b1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -258,4 +258,6 @@
     @Override
     public void getAscDeviceStatus() {
     }
+
+
 }

--
Gitblit v1.9.3