From 5083abb65d2a6e43603ee11575b0e233b00a085c Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 08 十二月 2025 17:19:52 +0800
Subject: [PATCH] 最新版本541200007

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java |   52 ++++++++++++
 admin/src/views/business/warningRule.vue                                                                 |   17 ++++
 admin/src/components/business/OperaWarningRuleWindow.vue                                                 |   95 ++++++++++++++++++-----
 server/visits/dmvisit_admin/src/main/resources/bootstrap.yml                                             |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java              |    6 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java                    |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java              |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java               |   13 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java      |   19 +---
 admin/src/api/business/device.js                                                                         |    3 
 admin/.env.development                                                                                   |    2 
 11 files changed, 173 insertions(+), 45 deletions(-)

diff --git a/admin/.env.development b/admin/.env.development
index 651ff40..6c43c0c 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -5,7 +5,7 @@
 
 # VUE_APP_API_URL  = 'http://192.168.1.45:10010'
 
-VUE_APP_API_URL  = 'http://192.168.0.7/system_gateway'
+#VUE_APP_API_URL  = 'http://192.168.0.7/system_gateway'
 
 VUE_APP_API_URL  = 'http://localhost:10010'
 
diff --git a/admin/src/api/business/device.js b/admin/src/api/business/device.js
index d5274bb..62bd4c3 100644
--- a/admin/src/api/business/device.js
+++ b/admin/src/api/business/device.js
@@ -17,6 +17,9 @@
 export function getList (data) {
   return request.post('/visitsAdmin/cloudService/business/device/getList', data)
 }
+export function allList (data) {
+  return request.post('/visitsAdmin/cloudService/business/device/list', data)
+}
 export function getDeviceRoleList (data) {
   return request.post('/visitsAdmin/cloudService/business/deviceRole/list', data)
 }
diff --git a/admin/src/components/business/OperaWarningRuleWindow.vue b/admin/src/components/business/OperaWarningRuleWindow.vue
index 2f8126f..226c5e7 100644
--- a/admin/src/components/business/OperaWarningRuleWindow.vue
+++ b/admin/src/components/business/OperaWarningRuleWindow.vue
@@ -1,7 +1,7 @@
 <template>
   <GlobalWindow
     :title="title"
-    width="50%"
+    width="80%"
     :visible.sync="visible"
     :confirm-working="isWorking"
     @confirm="confirm"
@@ -11,12 +11,6 @@
       2.鍙戠敓鍖哄煙闈炲繀濉紝涓嶅~鍒欒〃绀鸿瑙勫垯涓嬫墍鏈夊尯鍩熺殑鐩稿簲鎶ヨ绫诲瀷鍧囬�氱煡;<br>
     </p>
     <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="閫夋嫨绛惧埌閫氱煡浜哄憳" prop="memberIds" style="margin-bottom: 30px" >
-        <el-select v-model="memberSelect" filterable multiple clearable  placeholder="璇烽�夋嫨" @change="changeMembers">
-          <el-option v-for="item in memberList" :key="'member_'+item.id" :label="item.name+'-'+item.companyName" :value="item.id+''">
-          </el-option>
-        </el-select>
-      </el-form-item>
       <div style="display: flex;" v-for="(item,index) in form.detailList" :key="'region_'+item.random" >
         <span style="line-height: 32px;font-size: 14px;"><b style="color: #F56C6C;margin-right: 4px;font-size: 11px;">*</b>{{'瑙勫垯'+(index +1)}}</span>
         <el-form-item label=""   style="display: inline-block;margin-left: 10px; " >
@@ -53,6 +47,27 @@
       <el-form-item label="鍙戠敓闂撮殧鏃堕棿(绉掞級" prop="intervalSec">
         <el-input type="number" v-model="form.intervalSec" placeholder="璇疯緭鍏ュ瑙勫垯闂撮殧鏃堕棿(绉掞級" v-trim/>
       </el-form-item>
+      <el-form-item label="閽夐拤閫氱煡" prop="memberNotice"  style="display:inline-block;width: 50%;">
+        <el-switch    style="margin-right:30px;width:100px"    v-model="form.memberNotice" :active-value="1"  :inactive-value="0" active-text="寮�" inactive-text="鍏�"></el-switch>
+      </el-form-item>
+      <el-form-item label="閫夋嫨閽夐拤閫氱煡浜哄憳" v-if="form.memberNotice ==1" prop="memberIds" style="margin-bottom: 30px" >
+        <el-select v-model="memberSelect" filterable multiple clearable  placeholder="璇烽�夋嫨" @change="changeMembers">
+          <el-option v-for="item in memberList" :key="'member_'+item.id" :label="item.name+'-'+item.companyName" :value="item.id+''">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="骞挎挱閫氱煡" prop="deviceNotice"  style="display:inline-block;width: 50%;" >
+        <el-switch    style="margin-right:30px;width: 100px"    v-model="form.deviceNotice" :active-value="1"  :inactive-value="0" active-text="寮�" inactive-text="鍏�">></el-switch>
+      </el-form-item>
+      <el-form-item label="閫夋嫨鎾姤骞挎挱" v-if="form.deviceNotice ==1"  prop="deviceIds" style="margin-bottom: 30px" >
+        <el-select v-model="deviceSelect" filterable multiple clearable  placeholder="璇烽�夋嫨" @change="changeDevices">
+          <el-option v-for="item in deviceList" :key="'device_'+item.id" :label="item.name" :value="item.id+''">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="骞挎挱鎾姤鍐呭"  v-if="form.deviceNotice ==1" prop="deviceNoticeContent">
+        <el-input type="text" v-model="form.deviceNoticeContent" placeholder="璇疯緭鍏ユ挱鎶ュ唴瀹�" v-trim/>
+      </el-form-item>
     </el-form>
   </GlobalWindow>
 </template>
@@ -61,6 +76,7 @@
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
 import { allList } from '@/api/business/member'
+import { allList as allDveiceList } from '@/api/business/device'
 import { allList as warningList, regionList } from '@/api/business/warning'
 export default {
   name: 'OperaWarningRuleWindow',
@@ -72,19 +88,28 @@
       form: {
         id: null,
         memberIds: '',
+        deviceIds: '',
+        deviceNoticeContent: '',
+        deviceNotice: 1,
+        memberNotice: 1,
         intervalSec: '',
         sortnum: '',
         status: 0,
-        detailList: [{ random:Math.random(),regionId: null, regionName: null, regionCode: null ,warningId:null}]
+        detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
       },
+      deviceSelect: [],
       memberSelect: [],
       memberList: [],
+      deviceList: [],
       warningList: [],
       regionList: [],
       // 楠岃瘉瑙勫垯
       rules: {
+        memberNotice: [{ required: true, message: '璇烽�夋嫨閽夐拤閫氱煡' }],
+        deviceNotice: [{ required: true, message: '璇烽�夋嫨鏄惁骞挎挱閫氱煡' }],
+        deviceIds: [{ required: true, message: '璇烽�夋嫨鎾姤骞挎挱', tigger: 'blur' }],
         memberIds: [{ required: true, message: '璇烽�夋嫨閫氱煡浜哄憳', tigger: 'blur' }],
-        status: [{ required: true, message: '璇烽�夋嫨鐘舵��'}]
+        status: [{ required: true, message: '璇烽�夋嫨鐘舵��' }]
       }
     }
   },
@@ -106,22 +131,22 @@
         children: node.childList
       }
     },
-    changeSel(opt){
+    changeSel (opt) {
       var item = this.form.detailList[opt]
       this.form.detailList[opt].regionCode = null
       this.form.detailList[opt].regionName = null
-      if(item.regionId){
+      if (item.regionId) {
         var reg = this.getSelectedObject(item.regionId)
-        if(reg){
+        if (reg) {
           this.form.detailList[opt].regionCode = reg.indexCode
           this.form.detailList[opt].regionName = reg.name
         }
       }
-      console.log(" this.form.detailList[opt]",reg, this.form.detailList[opt])
+      console.log(' this.form.detailList[opt]', reg, this.form.detailList[opt])
     },
-    getSelectedObject(id) {
+    getSelectedObject (id) {
       if (!id) {
-        return null  // 娌℃湁閫変腑椤规椂杩斿洖 null 鎴� {} 鏍规嵁闇�瑕佸鐞�
+        return null // 娌℃湁閫変腑椤规椂杩斿洖 null 鎴� {} 鏍规嵁闇�瑕佸鐞�
       }
       const findSelected = (options) => {
         for (const option of options) {
@@ -132,12 +157,12 @@
             if (found) return found // 濡傛灉鎵惧埌杩斿洖璇ュ璞�
           }
         }
-        return null; // 鏈壘鍒拌繑鍥� null 鎴� {} 鏍规嵁闇�瑕佸鐞�
+        return null // 鏈壘鍒拌繑鍥� null 鎴� {} 鏍规嵁闇�瑕佸鐞�
       }
-      return findSelected(this.regionList); // 寮�濮嬫悳绱㈠苟杩斿洖缁撴灉
+      return findSelected(this.regionList) // 寮�濮嬫悳绱㈠苟杩斿洖缁撴灉
     },
     addDo () {
-      this.form.detailList.push({random:Math.random(), regionId: null, regionName: null, regionCode: null,warningId:null })
+      this.form.detailList.push({ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null })
     },
     delDo (index) {
       if (this.form.detailList.length > 1 && this.form.detailList.length > index) {
@@ -152,20 +177,34 @@
       }
       this.form.memberIds = this.memberSelect.join(',')
     },
+    changeDevices () {
+      console.log(this.deviceSelect)
+      this.form.deviceIds = ''
+      if (!this.deviceSelect || !this.deviceSelect.length) {
+        return
+      }
+      this.form.deviceIds = this.deviceSelect.join(',')
+    },
     open (title, target) {
-      this.memberSelect =[]
+      this.memberSelect = []
+      this.deviceSelect = []
       this.title = title
       this.loadMember()
+      this.loadDevice()
       this.loadRegions()
       this.loadWarning()
       this.visible = true
       this.form = {
         id: null,
         memberIds: '',
+        deviceIds: '',
         intervalSec: '',
         sortnum: '',
+        deviceNotice: 1,
+        deviceNoticeContent: '',
+        memberNotice: 1,
         status: 0,
-        detailList: [{ random:Math.random(),regionId: null, regionName: null, regionCode: null,warningId:null }]
+        detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
       }
       // 鏂板缓
       if (target == null) {
@@ -181,10 +220,13 @@
           this.form[key] = target[key]
         }
         if (!this.form.detailList || !this.form.detailList.length) {
-          this.form.detailList = [{ random:Math.random(),regionId: null, regionName: null, regionCode: null,warningId:null }]
+          this.form.detailList = [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
         }
-        if(this.form.memberIds){
-          this.memberSelect = this.form.memberIds.split(",")
+        if (this.form.memberIds) {
+          this.memberSelect = this.form.memberIds.split(',')
+        }
+        if (this.form.deviceIds) {
+          this.deviceSelect = this.form.deviceIds.split(',')
         }
       })
     },
@@ -195,6 +237,13 @@
         this.memberList = res
       })
     },
+    loadDevice () {
+      allDveiceList({
+        type: 4
+      }).then(res => {
+        this.deviceList = res
+      })
+    },
     loadWarning () {
       warningList({
       }).then(res => {
diff --git a/admin/src/views/business/warningRule.vue b/admin/src/views/business/warningRule.vue
index 0d42e30..db5eb91 100644
--- a/admin/src/views/business/warningRule.vue
+++ b/admin/src/views/business/warningRule.vue
@@ -8,6 +8,9 @@
       <el-form-item label="浜哄憳/閮ㄩ棬" prop="memberNames">
         <el-input v-model="searchForm.memberNames" placeholder="璇疯緭鍏ヤ汉鍛樻垨閮ㄩ棬鍚�" clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
+      <el-form-item label="骞挎挱鍚嶇О" prop="memberNames">
+        <el-input v-model="searchForm.deviceNames" placeholder="璇疯緭鍏ュ箍鎾悕绉�" clearable @keypress.enter.native="search"></el-input>
+      </el-form-item>
       <el-form-item label="鐘舵��" prop="status" >
         <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨鐘舵��" clearable @change="search">
           <el-option label="绂佺敤" value="0"></el-option>
@@ -34,7 +37,18 @@
       >
         <el-table-column type="selection" width="55"></el-table-column>
         <el-table-column prop="title" label="鎶ヨ瑙勫垯" min-width="200px" show-tooltip-when-overflow></el-table-column>
-        <el-table-column prop="memberNames" label="鎶ヨ鎺ユ敹浜�" min-width="200px" show-tooltip-when-overflow></el-table-column>
+        <el-table-column prop="memberNames" label="鎶ヨ鎺ユ敹浜�" min-width="200px" show-tooltip-when-overflow>
+          <template slot-scope="{row}">
+           <span v-if="row.memberNotice === 1">{{row.memberNames}}</span>
+           <span v-else class="red">鏈紑鍚�</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="deviceNames" label="鎶ヨ鎾姤骞挎挱" min-width="200px" show-tooltip-when-overflow>
+          <template slot-scope="{row}">
+            <span v-if="row.deviceNotice === 1">{{row.deviceNames}}</span>
+            <span v-else class="red">鏈紑鍚�</span>
+          </template>
+        </el-table-column>
         <el-table-column prop="intervalSec" label="闂撮殧鏃堕棿(绉掞級" min-width="100px" ></el-table-column>
         <el-table-column prop="status" label="鐘舵��" min-width="100px" >
           <template slot-scope="{row}">
@@ -83,6 +97,7 @@
       searchForm: {
         title: '',
         memberNames: '',
+        deviceNames: '',
         status:'',
       }
     }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java
index a65ace5..3467c1c 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java
@@ -88,6 +88,12 @@
     public ApiResponse<PageData<Device>> findPage (@RequestBody PageWrap<Device> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         return ApiResponse.success(deviceService.findPage(pageWrap));
     }
+    @ApiOperation("鏌ヨ鍏ㄩ儴")
+    @PostMapping("/list")
+    @CloudRequiredPermission("business:device:query")
+    public ApiResponse<List<Device>> findPage (@RequestBody   Device model,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(deviceService.findList(model));
+    }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
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 d03bda1..024312b 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
@@ -323,9 +323,9 @@
         param.setWithCameras(0);
         List<PageRegionInfoResponse>  result = new ArrayList<>();
         try {
-//            result = boardService.getRegionTree( param);
+            result = boardService.getRegionTree( param);
             //------TODO---------娴嬭瘯妯℃嫙鏁版嵁----start-----
-            for (int i = 0; i < 5; i++) {
+           /* for (int i = 0; i < 5; i++) {
                 PageRegionInfoResponse t = new PageRegionInfoResponse();
                 t.setName("鎬诲尯鍩焈"+i);
                 t.setIndexCode(i+"_code");
@@ -338,7 +338,7 @@
                     t.getChildList().add(t1);
                 }
                 result.add(t);
-            }
+            }*/
             //------TODO---------娴嬭瘯妯℃嫙鏁版嵁----end-----
         }catch (Exception e){
 
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
index 2df12af..9dc10e9 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: pro
+    active: dev
   application:
     name: visitsAdmin
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java
index d01fd13..4451530 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.Device;
+import com.github.yulichang.base.MPJBaseMapper;
 
 import java.util.Collection;
 
@@ -9,6 +10,6 @@
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
-public interface DeviceMapper extends BaseMapper<Device> {
+public interface DeviceMapper extends MPJBaseMapper<Device> {
 
 }
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 c1e2b0e..03eda6c 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
@@ -70,6 +70,10 @@
     @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1")
     @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤")
     private Integer status;
+    @ApiModelProperty(value = "鏄惁浜哄憳閫氱煡 0鍚� 1鏄�", example = "1")
+    private Integer memberNotice;
+    @ApiModelProperty(value = "鏄惁骞挎挱閫氱煡 0鍚� 1鏄�", example = "1")
+    private Integer deviceNotice;
 
     @ApiModelProperty(value = "鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�", example = "1")
     @ExcelColumn(name="鎶ヨ绫诲瀷缂栫爜(鍏宠仈warning锛�")
@@ -77,6 +81,15 @@
 
     @ApiModelProperty(value = "閫氱煡浜哄憳-閮ㄩ棬闆嗗悎锛屽涓嫳鏂囧垎鍙烽殧寮�", example = "1")
     private String memberNames;
+
+
+    @ApiModelProperty(value = "骞挎挱缂栫爜闆嗗悎锛堝叧鑱攄evice)锛屽涓嫳鏂囬�楀彿闅斿紑", example = "1")
+    private String deviceIds;
+    @ApiModelProperty(value = "骞挎挱鍚嶇О闆嗗悎锛屽涓嫳鏂囧垎鍙烽殧寮�", example = "1")
+    private String deviceNames;
+    @ApiModelProperty(value = "骞挎挱鎾姤鍐呭", example = "1")
+    private String deviceNoticeContent;
+
     @ApiModelProperty(value = "浜哄憳閮ㄩ棬", example = "1")
     @TableField(exist = false)
     private String companyName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
index 8f017ef..72f6c8f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -123,6 +123,7 @@
 
     @Override
     public List<Device> findList(Device device) {
+        device.setIsdeleted(Constants.ZERO);
         QueryWrapper<Device> wrapper = new QueryWrapper<>(device);
         return deviceMapper.selectList(wrapper);
     }
@@ -277,22 +278,14 @@
         }
         String input = "";
 
+        model.setSendInfo(param.getSendInfo());
+        return  sendBroadcaseBobaoHttpBiz(model);
+    }
+    public static String sendBroadcaseBobaoHttpBiz(Device model){
         //閲嶆柊涓嬪彂璁″垝
         JSONObject jsonObject = new JSONObject();
-
-      /*  {
-            "command": "start",
-                "TTSContent": "鍐�G70122,姣涢噸48.68鍚紝绉伴噸缁撴潫锛岃涓嬬",
-                "audioLevel": 6,
-                "audioOutID": [
-                        1
-              ],
-            "audioVolume": 100,
-                "voiceType": "female",
-                "TTSLanguageType": "chinese"
-        }*/
         jsonObject.put("command","start");
-        jsonObject.put("TTSContent",param.getSendInfo());
+        jsonObject.put("TTSContent",model.getSendInfo());
         jsonObject.put("audioLevel",6);
         jsonObject.put("audioVolume",100);
         jsonObject.put("TTSLanguageType","chinese");
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 87fe604..393ff42 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
@@ -4,6 +4,7 @@
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.DeviceMapper;
 import com.doumee.dao.business.WarningMapper;
 import com.doumee.dao.business.WarningRuleDetailMapper;
 import com.doumee.dao.business.dao.MemberMapper;
@@ -45,6 +46,8 @@
     @Autowired
     private MemberMapper memberMapper;
     @Autowired
+    private DeviceMapper deviceMapper;
+    @Autowired
     private WarningRuleDetailMapper warningRuleDetailMapper;
 
     @Override
@@ -82,7 +85,8 @@
             detail.setEditor(warning.getCreator());
         }
 
-        warning.setMemberNames( initMemberInfo(warning));
+         initMemberInfo(warning);
+        initDeviceInfo(warning);
         warning.setTitle(title);
         warningRuleMapper.insert(warning);
         for(WarningRuleDetail detail : warning.getDetailList()){
@@ -93,6 +97,9 @@
     }
 
     private String initMemberInfo(WarningRule warning) {
+        if(Constants.equalsInteger(warning.getMemberNotice(),Constants.ZERO)){
+            return null;
+        }
         String[] members = warning.getMemberIds().split(",");
         List<Integer> mIds = new ArrayList<>();
         for(String str :members){
@@ -122,6 +129,39 @@
         warning.setMemberIds(memberIds);
         warning.setMemberNames(memberNames);
         return memberNames;
+    }
+    private String initDeviceInfo(WarningRule warning) {
+        if(Constants.equalsInteger(warning.getDeviceNotice(),Constants.ZERO)){
+            return null;
+        }
+        String[] ids = warning.getDeviceIds().split(",");
+        List<Integer> mIds = new ArrayList<>();
+        for(String str :ids){
+            try {
+                mIds.add(Integer.parseInt(str));
+            }catch (Exception e){
+            }
+        }
+        if(mIds.size() ==0){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇烽�夋嫨姝g‘鐨勮澶囦俊鎭�");
+        }
+        List<Device> list = deviceMapper.selectJoinList(Device.class,new MPJLambdaWrapper<Device>()
+                .selectAll(Device.class )
+                .eq(Device::getIsdeleted,Constants.ZERO )
+                .eq(Device::getType,Constants.FOUR )
+                .in(Device::getId,mIds ));
+        if(list == null || list.size() ==0){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇烽�夋嫨姝g‘鐨勮澶囦俊鎭�!");
+        }
+        String dids = "";
+        String names = "";
+        for(Device m : list){
+            dids += (StringUtils.isNotBlank(dids)?",":"")+m.getId();
+            names += StringUtils.defaultString(m.getName(),"") +"; ";
+        }
+        warning.setDeviceIds(dids);
+        warning.setDeviceNames(names);
+        return names;
     }
 
     @Override
@@ -197,7 +237,8 @@
             detail.setEditDate(warning.getCreateDate());
             detail.setEditor(warning.getCreator());
         }
-        warning.setMemberNames( initMemberInfo(warning));
+        initMemberInfo(warning);
+        initDeviceInfo(warning);
         warning.setTitle(title);
         warningRuleMapper.updateById(warning);
         for(WarningRuleDetail detail : warning.getDetailList()){
@@ -252,6 +293,7 @@
         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());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDeviceNames()),WarningRule::getDeviceNames, pageWrap.getModel().getDeviceNames());
 
         if (pageWrap.getModel().getId() != null) {
             queryWrapper.eq(WarningRule::getId, pageWrap.getModel().getId());
@@ -273,6 +315,12 @@
         if (pageWrap.getModel().getIsdeleted() != null) {
             queryWrapper.eq(WarningRule::getIsdeleted, pageWrap.getModel().getIsdeleted());
         }
+        if (pageWrap.getModel().getMemberNotice() != null) {
+            queryWrapper.eq(WarningRule::getMemberNotice, pageWrap.getModel().getMemberNotice());
+        }
+        if (pageWrap.getModel().getDeviceNotice() != null) {
+            queryWrapper.eq(WarningRule::getDeviceNotice, pageWrap.getModel().getDeviceNotice());
+        }
         if (pageWrap.getModel().getInfo() != null) {
             queryWrapper.eq(WarningRule::getInfo, pageWrap.getModel().getInfo());
         }

--
Gitblit v1.9.3