From f67e78a754fb8d7364d35aaafb0295690a4cc810 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 03 十二月 2025 10:37:06 +0800
Subject: [PATCH] 最新版本541200007

---
 server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java                                                        |   79 +++++++++++
 admin/src/views/business/deviceBroadcast.vue                                                                                    |   54 +++++--
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java                                      |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ISAPIBroadcastAddPlanSchemeRequest.java |   87 ++++++++++++
 server/visits/dmvisit_admin/src/main/resources/bootstrap.yml                                                                    |    2 
 admin/src/components/business/OperaDeviceBroadcastWindow.vue                                                                    |   30 ++++
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java                                     |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java                             |  134 +++++++++++++++++++
 8 files changed, 373 insertions(+), 21 deletions(-)

diff --git a/admin/src/components/business/OperaDeviceBroadcastWindow.vue b/admin/src/components/business/OperaDeviceBroadcastWindow.vue
index 5f6ae87..c7a4027 100644
--- a/admin/src/components/business/OperaDeviceBroadcastWindow.vue
+++ b/admin/src/components/business/OperaDeviceBroadcastWindow.vue
@@ -15,6 +15,18 @@
           <el-form-item label="璁惧搴忓垪鍙�" prop="no">
             <el-input v-model="form.no" placeholder="璇疯緭鍏ュ簭鍒楀彿" v-trim/>
           </el-form-item>
+          <el-form-item label="杩炴帴IP" prop="ip">
+            <el-input v-model="form.ip" placeholder="璇疯緭鍏ヨ澶囪繛鎺P鍦板潃" v-trim/>
+          </el-form-item>
+          <el-form-item label="杩炴帴绔彛" prop="port">
+            <el-input v-model="form.port" placeholder="璇疯緭鍏ヨ繛鎺ョ鍙�" v-trim/>
+          </el-form-item>
+          <el-form-item label="杩炴帴璐﹀彿" prop="doorId">
+            <el-input v-model="form.doorId" placeholder="璇疯緭鍏ヨ澶囪繛鎺ヨ处鍙�" v-trim/>
+          </el-form-item>
+          <el-form-item label="杩炴帴瀵嗙爜" prop="doorName">
+            <el-input v-model="form.doorName" type="password"  maxlength="30" show-password></el-input>
+          </el-form-item>
           <el-form-item label="鎵�鍦ㄤ綅缃�" prop="regionPathName">
             <el-input v-model="form.regionPathName" placeholder="璇疯緭鍏ユ墍鍦ㄤ綅缃�" v-trim/>
           </el-form-item>
@@ -38,13 +50,29 @@
         name: '',
         regionPathName: '',
         no: '',
-        type: 4
+        type: 4,
+        ip: '',
+        port: '',
+        doorId: '',
+        doorName:''
       },
       // 楠岃瘉瑙勫垯
       rules: {
         name: [
           { required: true, message: '璇疯緭鍏ヨ澶囧悕绉�' }
         ],
+        ip: [
+          { required: true, message: '璇疯緭鍏ヨ澶囪繛鎺P鍦板潃' }
+        ],
+        port: [
+          { required: true, message: '璇疯緭鍏ヨ澶囪繛鎺ョ鍙e彿' }
+        ],
+        doorId: [
+          { required: true, message: '璇疯緭鍏ヨ澶囪繛鎺ヨ处鍙�' }
+        ],
+        doorName: [
+          { required: true, message: '璇疯緭鍏ヨ澶囪繛鎺ュ瘑鐮�' }
+        ],
         hkId: [
           { required: true, message: '璇疯緭鍏ヨ澶囧敮涓�鐮�' }
         ]
diff --git a/admin/src/views/business/deviceBroadcast.vue b/admin/src/views/business/deviceBroadcast.vue
index 9e54ee3..baf4669 100644
--- a/admin/src/views/business/deviceBroadcast.vue
+++ b/admin/src/views/business/deviceBroadcast.vue
@@ -25,18 +25,30 @@
             >
               <el-table-column type="selection" width="55"></el-table-column>
               <el-table-column label="搴忓彿"  width="55" fixed><template slot-scope="scope" >{{scope.$index+1}}</template></el-table-column>
-                <el-table-column prop="name" label="鍚嶇О"></el-table-column>
-                <el-table-column prop="hkId" label="鍞竴鏍囪瘑"  ></el-table-column>
-                <el-table-column prop="no" label="搴忓垪鍙�"  ></el-table-column>
-                <el-table-column prop="regionPathName" label="鎵�鍦ㄤ綅缃�"></el-table-column>
-                <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�"></el-table-column>
-                <el-table-column
-                    v-if="containPermissions(['business:devicerole:update', 'business:devicerole:delete'])"
-                    label="鎿嶄綔"
-                    align="center"
-                    min-width="120"
-                    fixed="right"
-                >
+              <el-table-column prop="name" label="鍚嶇О"></el-table-column>
+              <el-table-column prop="hkId" label="鍞竴鏍囪瘑"  ></el-table-column>
+              <el-table-column prop="regionPathName" label="鎵�鍦ㄤ綅缃�"></el-table-column>
+              <el-table-column prop="no" label="搴忓垪鍙�"  ></el-table-column>
+              <el-table-column prop="ip" label="IP鍦板潃"  ></el-table-column>
+              <el-table-column prop="port" label="绔彛"  ></el-table-column>
+              <el-table-column prop="doorId" label="璐﹀彿"></el-table-column>
+              <el-table-column prop="doorName" label="瀵嗙爜" align="center">
+                <template slot-scope="{row}">
+                  <span :class=" 'blue'">{{row.showPwd?row.doorName:'******'}}</span>
+                  <el-button  style="margin-left: 10px" v-if="row.doorName!=null"
+                              @click.native.p.prevent="showPassward(row)" type="text">
+                   <i class="el-icon-view" :class="row.showPwd?'red':'blue'" :title="row.showPwd?'闅愯棌':'鏄剧ず'"></i>
+                  </el-button>
+                </template>
+              </el-table-column>
+              <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�"></el-table-column>
+              <el-table-column
+                  v-if="containPermissions(['business:devicerole:update', 'business:devicerole:delete'])"
+                  label="鎿嶄綔"
+                  align="center"
+                  min-width="120"
+                  fixed="right"
+              >
                   <template slot-scope="{row}">
                     <el-button type="text" @click="$refs.operaDeviceWindow.open('缂栬緫骞挎挱', row)" icon="el-icon-edit" v-permissions="['business:device:update']">缂栬緫</el-button>
                     <el-button type="text" @click="send(row)" icon="el-icon-edit"  v-permissions="['business:device:update']">鍙戦�佹挱鎶�</el-button>
@@ -79,6 +91,7 @@
 import TableLayout from '@/layouts/TableLayout'
 import Pagination from '@/components/common/Pagination'
 import OperaDeviceBroadcastWindow from '@/components/business/OperaDeviceBroadcastWindow'
+import { syncDevices } from '@/api/business/device'
 export default {
   name: 'Device',
   extends: BaseTable,
@@ -114,11 +127,18 @@
     this.search()
   },
   methods: {
+    showPassward (row) {
+      if (!row.showPwd) {
+        this.$set(row, 'showPwd', true)
+      } else {
+        this.$set(row, 'showPwd', false)
+      }
+    },
     sendBobao () {
-      if(!this.form.sendInfo){
+      if (!this.form.sendInfo) {
         return
       }
-      this.$dialog.actionConfirm('纭杩涜骞挎挱鎾姤鍚楋紵','鎿嶄綔纭鎻愰啋')
+      this.$dialog.actionConfirm('纭杩涜骞挎挱鎾姤鍚楋紵', '鎿嶄綔纭鎻愰啋')
         .then(() => {
           this.isWorkSending = true
           this.api.sendBobao(this.form)
@@ -143,17 +163,17 @@
       this.isWorkSending = false
       this.form = { sendInfo: '', id: '', hkId: '', name: '' }
     },
-     synchronousData () {
+    synchronousData () {
       this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
         .then(() => {
           this.isWorking.delete = true
-          syncDevices({type: 4})
+          syncDevices({ type: 4 })
             .then(res => {
               this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
               this.search()
             })
             .catch(e => {
-             //  this.$tip.apiFailed(e)
+              //  this.$tip.apiFailed(e)
             })
             .finally(() => {
               this.isWorking.delete = false
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
index e7845db..244f654 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
@@ -1,17 +1,35 @@
 package com.doumee.core.utils;
 
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpEntity;
+import org.apache.http.ParseException;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.springframework.http.HttpMethod;
 
 import javax.net.ssl.*;
 import java.io.*;
 import java.net.HttpURLConnection;
+import java.net.URI;
 import java.net.URL;
 import java.security.KeyManagementException;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
-
+@Slf4j
 public class HttpsUtil {
 
     public static String get(String url,boolean ignoreSSL) {
@@ -28,6 +46,65 @@
             return connectionHttp(url, "POST", data, "application/json");
         }
     }
+    private static final int CONNECT_TIMEOUT =10000;// 璁剧疆杩炴帴寤虹珛鐨勮秴鏃舵椂闂翠负10s
+    private static final int SOCKET_TIMEOUT = 10000;//socket璇诲啓瓒呮椂鏃堕棿(鍗曚綅姣)
+
+    private static void setRequestConfig(HttpRequestBase httpRequestBase) {
+        RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECT_TIMEOUT)
+                .setConnectTimeout(CONNECT_TIMEOUT).setSocketTimeout(SOCKET_TIMEOUT).build();
+        httpRequestBase.setConfig(requestConfig);
+    }
+
+    public static String doPostHk(String host,int port,String UserName,String Password,String url, String Input) {
+        try {
+            CloseableHttpResponse responseBody = null;
+            HttpPost httpPost = new HttpPost("http://"+host+":"+port+url);
+            setRequestConfig(httpPost);
+            httpPost.setEntity(new StringEntity(Input, "UTF-8"));
+            CredentialsProvider credsProvider = new BasicCredentialsProvider();
+            credsProvider.setCredentials(new AuthScope(host, port),
+                    new UsernamePasswordCredentials(UserName, Password));
+            CloseableHttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
+
+            String response = "";
+
+            // 鐢卞鎴风鎵ц(鍙戦��)Post璇锋眰
+            responseBody = httpClient.execute(httpPost);
+            // 浠庡搷搴旀ā鍨嬩腑鑾峰彇鍝嶅簲瀹炰綋
+            HttpEntity responseEntity = responseBody.getEntity();
+            log.error("doPostHk鍝嶅簲鐘舵�佷负:" + responseBody.getStatusLine());
+            if (responseBody.getStatusLine().getStatusCode() == 302){
+                String redirectLocation = responseBody.getHeaders("Location")[0].getValue();
+                log.error("doPostHkRedirected to: " + redirectLocation);
+                // 鍦ㄨ繖閲岋紝浣犲彲浠ュ彂閫佷竴涓柊鐨勮姹傚埌redirectLocation
+                httpPost.setURI(URI.create(redirectLocation));
+                CloseableHttpResponse responseBody2 = httpClient.execute(httpPost);
+                log.error("doPostHk閲嶅畾鍚戝悗鍝嶅簲鐘舵�佷负:" + responseBody2.getStatusLine());
+                HttpEntity responseEntity2 = responseBody2.getEntity();
+                log.error("doPostHk閲嶅畾鍚戝悗鍝嶅簲鍐呭闀垮害涓�:" + responseEntity2.getContentLength());
+                response = EntityUtils.toString(responseEntity2);
+                log.error("doPostHk閲嶅畾鍚戝悗鍝嶅簲鍐呭涓�:\n" + response);
+                responseBody2.close();
+                return response;
+            }else {
+                if (responseEntity != null) {
+                    log.error("doPostHk鍝嶅簲鍐呭闀垮害涓�:" + responseEntity.getContentLength());
+                    response = EntityUtils.toString(responseEntity);
+                    log.error("doPostHk鍝嶅簲鍐呭涓�:\n" + response);
+                    return response;
+                }
+            }
+            if (httpClient != null) {
+                httpClient.close();
+            }
+            if (responseBody != null) {
+                responseBody.close();
+            }
+        } catch (Exception e) {
+            log.error("doPostHk鍙戣捣璇锋眰寮傚父:\n" + e.getMessage());
+        }
+        return null;
+    }
 
     public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){
         HttpsURLConnection connection = null;
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 37a5584..4edb06e 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
@@ -356,7 +356,12 @@
     }
     @ApiOperation("銆愭捣搴枫�戝箍鎾挱鎶�")
     @PostMapping("/sendBobao")
-    public ApiResponse<List<Map<String,Object>>> setBroadcaseBobao(@RequestBody Device body  , HttpServletResponse response) {
+    public ApiResponse<String> setBroadcaseBobao(@RequestBody Device body  , HttpServletResponse response) {
+        return ApiResponse.success( deviceService.setBroadcaseBobaoHttp(body));
+    }
+    @ApiOperation("銆愭捣搴枫�戝箍鎾挱鎶�")
+    @PostMapping("/sendBobaoOpenapi")
+    public ApiResponse<List<Map<String,Object>>> sendBobaoOpenapi(@RequestBody Device body  , HttpServletResponse response) {
         deviceService.setBroadcaseBobao(body);
         return ApiResponse.success(null);
     }
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/core/haikang/model/param/request/ISAPIBroadcastAddPlanSchemeRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ISAPIBroadcastAddPlanSchemeRequest.java
new file mode 100644
index 0000000..1ff34ee
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ISAPIBroadcastAddPlanSchemeRequest.java
@@ -0,0 +1,87 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ISAPIBroadcastAddPlanSchemeRequest {
+
+    /**
+    {
+        "terminalInfoList": [
+        {
+            "terminalID": 1,
+                "audioOutID": [
+            2
+            ],
+            "audioOutIndexList": [
+            1
+            ]
+        }
+    ],
+        "broadcastPlanSchemeList": [
+        {
+            "planSchemeID": "plan1",
+                "enabled": true,
+                "sourceID": "fdb4465d7aa5495884845127a8bbbe3c",
+                "weklyScheduleInfo": {
+            "startTime": "1970-01-01",
+                    "stopTime": "1970-01-01",
+                    "weeklyScheduleList": [
+            {
+                "dayOfWeek": 1,
+                    "scheduleList": [
+                {
+                    "planSchemeExecID": 0,
+                        "beginTime": "00:00:00",
+                        "endTime": "00:00:00",
+                        "playNowTime": "00:00:00",
+                        "operation": {
+                    "audioSource": "customAudio",
+                            "customAudioID": [
+                    2
+                                    ],
+                    "URLIDs": [
+                    1
+                                    ],
+                    "speechSynthesisContent": "test",
+                            "audioLevel": 0,
+                            "TTSLanguageType": "english",
+                            "voiceType": "male",
+                            "audioVolume": 1
+                }
+                }
+                        ]
+            }
+                ]
+        },
+            "dailyScheduleInfo": {
+            "startTime": "1970-01-01",
+                    "stopTime": "1970-01-01",
+                    "dailyScheduleList": [
+            {
+                "beginTime": "00:00:00",
+                    "endTime": "00:00:00",
+                    "playNowTime": "00:00:00",
+                    "operation": {
+                "audioSource": "customAudio",
+                        "customAudioID": [
+                2
+                            ],
+                "URLIDs": [
+                1
+                            ],
+                "speechSynthesisContent": "test",
+                        "audioLevel": 0,
+                        "TTSLanguageType": "english",
+                        "audioVolume": 1
+            }
+            }
+                ]
+        }
+        }
+    ]
+    }
+    */
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
index 840dbda..ceced8e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
@@ -108,4 +108,5 @@
     void allLedDefualtContent();
 
     void setBroadcaseBobao(Device body);
+    String setBroadcaseBobaoHttp(Device body);
 }
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 86fa98a..0415313 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
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
@@ -10,6 +11,7 @@
 import com.doumee.core.haikang.model.param.request.CustomBroadcastRequest;
 import com.doumee.core.haikang.model.param.request.TransparentChannelSingleRequest;
 import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.HttpsUtil;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.third.model.LoginUserInfo;
@@ -268,6 +270,138 @@
         }
     }
     @Override
+    public String setBroadcaseBobaoHttp(Device param){
+       /* Device model = deviceMapper.selectById(param.getId());
+        if(model ==null && Constants.equalsInteger(param.getType(),Constants.FOUR)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        String input = "";
+        JSONObject objext = new JSONObject();
+
+        //閲嶆柊涓嬪彂璁″垝
+        JSONObject jsonObject = new JSONObject();
+        //绗竴灞�
+        JSONArray firstJsonArray = new JSONArray();
+        JSONObject downJson = new JSONObject();
+        downJson.put("terminalID",1);
+        //涓嶅~榛樿瀵规墍鏈夐�氶亾涓嬪彂
+        JSONArray audioJsonArray = new JSONArray();
+        audioJsonArray.add(1);
+        downJson.put("audioOutID",audioJsonArray);
+        firstJsonArray.add(downJson);
+        jsonObject.put("TerminalInfoList",firstJsonArray);
+        //绗竴灞傛暟缁�
+        JSONArray allJsonArray = new JSONArray();
+        //鏁扮粍涓璞�
+        for (WaterTimingBroadcastDO waterTimingBroadcastDO : searchList) {
+            JSONObject downArrayData = new JSONObject();
+            downArrayData.put("audioOutID",audioJsonArray);
+            downArrayData.put("enabled",true);
+            downArrayData.put("planSchemeID",waterTimingBroadcastDO.getName());
+            JSONObject executeJson = new JSONObject();
+            executeJson.put("startTime", getDateStringByZones(waterTimingBroadcastDO.getStartDate()));
+            executeJson.put("stopTime",getDateStringByZones(waterTimingBroadcastDO.getEndDate()));
+            if (Constant.ONE.equals(waterTimingBroadcastDO.getPeriodType())){
+                //鏃ヨ鍒�
+                JSONArray executeJsonArray = new JSONArray();
+                JSONObject executeJsonDataItem = new JSONObject();
+                executeJsonDataItem.put("beginTime",waterTimingBroadcastDO.getStartTime()+"+08:00");
+                executeJsonDataItem.put("endTime",waterTimingBroadcastDO.getEndTime()+"+08:00");
+                executeJsonDataItem.put("playMode","loop");
+                executeJsonDataItem.put("playNowTime","");
+                executeJsonDataItem.put("planSchemeExecID",0);
+                JSONObject secondDownOperationJson = new JSONObject();
+                if (Constant.ONE.equals(waterTimingBroadcastDO.getContentType())){
+                    //鏂囨湰
+                    secondDownOperationJson.put("audioSource","speechSynthesis");
+                    secondDownOperationJson.put("speechSynthesisContent",waterTimingBroadcastDO.getContent());
+                }else if (Constant.TWO.equals(waterTimingBroadcastDO.getContentType())){
+                    //闊抽
+                    secondDownOperationJson.put("audioSource","customAudio");
+                    String json = waterTimingBroadcastDO.getJson();
+                    JSONObject jsonData = JSONObject.parseObject(json);
+                    List<Integer> hkAudioIds = new ArrayList<>();
+                    hkAudioIds.add(jsonData.getIntValue(waterDeviceDO.getIp()));
+                    secondDownOperationJson.put("customAudioID",hkAudioIds);
+                }
+                secondDownOperationJson.put("audioLevel",5);
+                //璇█绫诲瀷
+                secondDownOperationJson.put("TTSLanguageType","chinese");
+                secondDownOperationJson.put("voiceType","female");
+                secondDownOperationJson.put("audioVolume",100);
+                executeJsonDataItem.put("Operation",secondDownOperationJson);
+                executeJsonArray.add(executeJsonDataItem);
+                executeJson.put("dailyScheduleList",executeJsonArray);
+            }else {
+                //鍛ㄨ鍒�
+                JSONArray executeJsonArray = new JSONArray();
+                List<String> executeTime = new ArrayList<>();
+                if (Constant.ONE.equals(waterTimingBroadcastDO.getPeriodType())){
+                    //鏃ヨ鍒� 寰幆涓�娆�
+                    executeTime.add("1");
+                }else if (Constant.TWO.equals(waterTimingBroadcastDO.getPeriodType())){
+                    //鍛ㄨ鍒掑涓�涓懆鍑�
+                    executeTime = Arrays.asList(waterTimingBroadcastDO.getExecuteTime().split(","));
+                }
+                for (String s : executeTime) {
+                    JSONObject executeJsonData = new JSONObject();
+                    if (Constant.TWO.equals(waterTimingBroadcastDO.getPeriodType())){
+                        //鍛ㄨ鍒掑涓�涓懆鍑�
+                        executeJsonData.put("dayOfWeek",Integer.parseInt(s));
+                    }
+                    JSONArray executeJsonDataArray = new JSONArray();
+                    JSONObject executeJsonDataItem = new JSONObject();
+                    executeJsonDataItem.put("beginTime",waterTimingBroadcastDO.getStartTime()+"+08:00");
+                    executeJsonDataItem.put("endTime",waterTimingBroadcastDO.getEndTime()+"+08:00");
+                    executeJsonDataItem.put("playMode","loop");
+                    executeJsonDataItem.put("playNowTime","");
+                    executeJsonDataItem.put("planSchemeExecID",0);
+                    JSONObject secondDownOperationJson = new JSONObject();
+                    if (Constant.ONE.equals(waterTimingBroadcastDO.getContentType())){
+                        //鏂囨湰
+                        secondDownOperationJson.put("audioSource","speechSynthesis");
+                        secondDownOperationJson.put("speechSynthesisContent",waterTimingBroadcastDO.getContent());
+                    }else if (Constant.TWO.equals(waterTimingBroadcastDO.getContentType())){
+                        //闊抽
+                        secondDownOperationJson.put("audioSource","customAudio");
+                        String json = waterTimingBroadcastDO.getJson();
+                        JSONObject jsonData = JSONObject.parseObject(json);
+                        List<Integer> hkAudioIds = new ArrayList<>();
+                        hkAudioIds.add(jsonData.getIntValue(waterDeviceDO.getIp()));
+                        secondDownOperationJson.put("customAudioID",hkAudioIds);
+                    }
+                    secondDownOperationJson.put("audioLevel",5);
+                    //璇█绫诲瀷
+                    secondDownOperationJson.put("TTSLanguageType","chinese");
+                    secondDownOperationJson.put("voiceType","female");
+                    secondDownOperationJson.put("audioVolume",10);
+                    executeJsonDataItem.put("Operation",secondDownOperationJson);
+                    executeJsonDataArray.add(executeJsonDataItem);
+                    executeJsonData.put("scheduleList",executeJsonDataArray);
+                    executeJsonArray.add(executeJsonData);
+
+                }
+                executeJson.put("weeklyScheduleList",executeJsonArray);
+            }
+
+            if (Constant.ONE.equals(waterTimingBroadcastDO.getPeriodType())){
+                //鏃ヨ鍒�
+                downArrayData.put("dailyScheduleInfo",executeJson);
+            }else {
+                //鍛ㄨ鍒�
+                downArrayData.put("weklyScheduleInfo",executeJson);
+            }
+            allJsonArray.add(downArrayData);
+        }
+        jsonObject.put("broadcastPlanSchemeList",allJsonArray);
+        log.info("娴峰悍鎾斁璁″垝涓嬪彂鍏ュ弬鍐呭 : " + jsonObject);
+
+        String result = HttpsUtil.doPostHk(param.getIp(),Integer.parseInt(StringUtils.defaultString(param.getPort(),"80"))
+                ,"/ISAPI/VideoIntercom/broadcast/AddPlanScheme?format=json",param.getDoorId(), param.getDoorName(),jsonObject.toJSONString());
+        return result;*/
+        return  null;
+    }
+    @Override
     public void setLedContent(TransparentChannelSingleRequest model) {
         Device device = findById(model.getDeviceId());
         if(device == null

--
Gitblit v1.9.3