From d7536094a9e0a1160a97c7a44cb9343feff53d2a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 22 四月 2025 16:41:45 +0800
Subject: [PATCH] bug 修改

---
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java                 |    4 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/MonitorCodeDTO.java              |   22 ++++
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MonitorController.java        |  219 +++++++++++++++++++++++++++++++++++++++++++
 ruoyi-service/ruoyi-admin/pom.xml                                                                |    6 +
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java   |   10 ++
 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/MasterWorker.java               |    2 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/MonitorInfoVO.java                    |   25 +++++
 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java |    7 -
 8 files changed, 288 insertions(+), 7 deletions(-)

diff --git a/ruoyi-service/ruoyi-admin/pom.xml b/ruoyi-service/ruoyi-admin/pom.xml
index 537080b..f2eb0bd 100644
--- a/ruoyi-service/ruoyi-admin/pom.xml
+++ b/ruoyi-service/ruoyi-admin/pom.xml
@@ -18,6 +18,12 @@
     </properties>
 
     <dependencies>
+        <!--hutool-all-->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.0.3</version>
+        </dependency>
         <dependency>
             <groupId>commons-httpclient</groupId>
             <artifactId>commons-httpclient</artifactId>
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
index fbd0dba..b4b59b4 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
@@ -5,8 +5,10 @@
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.admin.entity.MasterWorker;
+import com.ruoyi.admin.request.MonitorCodeDTO;
 import com.ruoyi.admin.service.MasterWorkerService;
 import com.ruoyi.admin.vo.MasterWorkerDetailVO;
+import com.ruoyi.admin.vo.MonitorInfoVO;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -51,6 +53,14 @@
     private EvaluateClient evaluateClient;
     @Resource
     private TokenService tokenService;
+    @ApiOperation(value = "设置师傅终端编号")
+    @PostMapping(value = "/setMonitorCode")
+    public R monitorInfo(@RequestBody MonitorCodeDTO monitorCodeDTO) {
+        MasterWorker byId = masterWorkerService.getById(monitorCodeDTO.getId());
+        byId.setTerminalCode(monitorCodeDTO.getTerminalCode());
+        masterWorkerService.updateById(byId);
+        return R.ok();
+    }
 
     /**
      * 师傅列表分页查询 (添加订单-选择师傅列表)
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MonitorController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MonitorController.java
new file mode 100644
index 0000000..e85f904
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MonitorController.java
@@ -0,0 +1,219 @@
+package com.ruoyi.admin.controller;
+
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.admin.entity.Agreement;
+import com.ruoyi.admin.entity.MasterWorker;
+import com.ruoyi.admin.entity.Notices;
+import com.ruoyi.admin.service.AgreementService;
+import com.ruoyi.admin.service.MasterWorkerService;
+import com.ruoyi.admin.vo.MonitorInfoVO;
+import com.ruoyi.common.core.constant.Constants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.annotation.Logical;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.Random;
+
+/**
+ * <p>
+ * 监控
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-05-29
+ */
+@RestController
+@RequestMapping("/monitor")
+@Api(tags = {"大屏-监控"})
+public class MonitorController {
+    @Autowired
+    private MasterWorkerService masterWorkerService;
+
+    public static void main(String[] args) {
+        HttpRequest post = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/devices?key=zT908g2j9niqrwO6ENIm5MZriXb0ZC%2Fq0hlFOWfm1Qs%3D");
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            return;
+        }
+        System.err.println(execute.body());
+        JSONObject jsonObject = JSONObject.parseObject(execute.body());
+        JSONArray data = jsonObject.getJSONArray("data");
+        // 终端设备id
+        List<JSONObject> strings = new ArrayList<>();
+        for (Object datum : data) {
+            JSONObject jsonObject1 = (JSONObject) datum;
+            JSONObject jsonObject2 = new JSONObject();
+            jsonObject2.put("terid", jsonObject1.getString("terid"));
+            jsonObject2.put("deviceusername", jsonObject1.getString("deviceusername"));
+            strings.add(jsonObject2);
+        }
+        System.err.println(strings);
+    }
+
+//    /**
+//     * 回收员监控列表
+//     */
+//    @ApiOperation(value = "回收员监控列表")
+//    @GetMapping(value = "/monitorList")
+//    public R monitorList() {
+//
+//        // 获取token
+//        String token = "";
+//        HttpRequest post = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/key?username=dakaer&password=dakaer@888");
+//        HttpResponse execute = post.execute();
+//        if (200 != execute.getStatus()) {
+//            return R.fail("获取三方监控token失败");
+//        }
+//        System.err.println("获取三方平台授权token响应参数" + execute.body());
+//        token = JSONObject.parseObject(execute.body()).getJSONObject("data").getString("key");
+//
+//        // 获取司机列表
+//        HttpRequest post1 = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/devices?key="+token);
+//        HttpResponse execute1 = post1.execute();
+//        if (200 != execute1.getStatus()) {
+//            return R.fail("获取三方监控司机列表失败");
+//        }
+//        System.err.println(execute1.body());
+//        JSONObject jsonObject = JSONObject.parseObject(execute1.body());
+//        JSONArray data = jsonObject.getJSONArray("data");
+//        // 终端设备id
+//        List<JSONObject> strings = new ArrayList<>();
+//        List<String> terIds = new ArrayList<>();
+//        for (Object datum : data) {
+//            JSONObject jsonObject1 = (JSONObject) datum;
+//            JSONObject jsonObject2 = new JSONObject();
+//            jsonObject2.put("terid",jsonObject1.getString("terid"));
+//            jsonObject2.put("deviceusername",jsonObject1.getString("deviceusername"));
+//            strings.add(jsonObject2);
+//            terIds.add(jsonObject1.getString("terid"));
+//        }
+//        System.err.println(strings);
+//        // 获取司机位置信息
+//        HttpRequest post2 = HttpUtil.createPost("http://8.146.210.16:12056/api/v1/basic/gps/last");
+//        JSONObject jsonObject4 = new JSONObject();
+//        jsonObject4.put("key",token);
+//        jsonObject4.put("terid",terIds);
+//        post2.body(jsonObject4.toJSONString());
+//
+//        HttpResponse execute2 = post2.execute();
+//        if (200 != execute2.getStatus()) {
+//            return R.fail("获取三方监控司机列表失败");
+//        }
+//        System.err.println(execute2.body());
+//        JSONObject jsonObject1 = JSONObject.parseObject(execute2.body());
+//        JSONArray data2 = jsonObject1.getJSONArray("data");
+//        // 终端设备id
+//        List<JSONObject> strings1 = new ArrayList<>();
+//        for (Object datum : data2) {
+//            JSONObject jsonObject3 = (JSONObject) datum;
+//            JSONObject jsonObject2 = new JSONObject();
+//            jsonObject2.put("lat",jsonObject3.getString("gpslat"));
+//            jsonObject2.put("lng",jsonObject3.getString("gpslng"));
+//            jsonObject2.put("terid",jsonObject3.getString("terid"));
+//            strings1.add(jsonObject2);
+//        }
+//        for (JSONObject object : strings1) {
+//            String string = object.getString("terid");
+//            for (JSONObject string1 : strings) {
+//                if (string1.getString("terid").equals(string)){
+//                    object.put("name",string1.getString("deviceusername"));
+//                    break;
+//                }
+//            }
+//        }
+//        System.err.println(strings1);
+//        return R.ok(strings1);
+//    }
+    /**
+     * 回收员监控列表
+     */
+    @ApiOperation(value = "回收员监控详情")
+    @GetMapping(value = "/monitorInfo")
+
+    public R<MonitorInfoVO> monitorInfo(String terid) {
+        MonitorInfoVO monitorInfoVO = new MonitorInfoVO();
+        MasterWorker one = masterWorkerService.lambdaQuery().eq(MasterWorker::getTerminalCode, terid).last("limit 1").one();
+        if (one==null){
+            return R.fail("当前师傅未绑定终端编号");
+        }
+        // 获取token
+        String token = "";
+        HttpRequest post = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/key?username=dakaer&password=dakaer@888");
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+        }
+        System.err.println("获取三方平台授权token响应参数" + execute.body());
+        token = JSONObject.parseObject(execute.body()).getJSONObject("data").getString("key");
+        // 获取端口
+        HttpRequest post9 = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/live/port?key="+token);
+        HttpResponse execute9 = post9.execute();
+        if (200 != execute9.getStatus()) {
+        }
+        System.err.println(execute9.body());
+        JSONObject jsonObject9 = JSONObject.parseObject(execute9.body());
+        JSONArray data9 = jsonObject9.getJSONArray("data");
+        int i = new Random().nextInt(data9.size());
+        Object o = data9.get(i);
+        JSONObject temp = (JSONObject) o;
+        String port = temp.getString("port");
+
+        // 获取司机列表
+        HttpRequest post2 = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/devices?key="+token);
+        HttpResponse execute2 = post2.execute();
+        if (200 != execute2.getStatus()) {
+        }
+        System.err.println(execute2.body());
+        JSONObject jsonObject = JSONObject.parseObject(execute2.body());
+        JSONArray data = jsonObject.getJSONArray("data");
+        // 终端设备id
+        List<JSONObject> strings = new ArrayList<>();
+        List<String> terIds = new ArrayList<>();
+        for (Object datum : data) {
+            JSONObject jsonObject1 = (JSONObject) datum;
+            JSONObject jsonObject2 = new JSONObject();
+            jsonObject2.put("terid",jsonObject1.getString("terid"));
+            jsonObject2.put("deviceusername",jsonObject1.getString("deviceusername"));
+            jsonObject2.put("carlicence",jsonObject1.getString("carlicence"));
+            strings.add(jsonObject2);
+            terIds.add(jsonObject1.getString("terid"));
+        }
+        System.err.println(strings);
+        // 获取url
+        HttpRequest post1 = HttpUtil.createGet("http://8.146.210.16:12056/api/v1/basic/live/video?key="+token+"&terid="+terid+"&chl=1&audio=1&st=0&port="+port);
+        HttpResponse execute1 = post1.execute();
+        if (200 != execute1.getStatus()) {
+        }
+        System.err.println(execute1.body());
+        JSONObject jsonObject3 = JSONObject.parseObject(execute1.body());
+        JSONObject data3 = jsonObject3.getJSONObject("data");
+        String url = data3.getString("url");
+        monitorInfoVO.setUrl(url);
+        monitorInfoVO.setCityName(one.getCity());
+        monitorInfoVO.setName(one.getRealName());
+        monitorInfoVO.setPhone(one.getPhone());
+        for (JSONObject string : strings) {
+            if (string.getString("terid").equals(terid)){
+                monitorInfoVO.setLicensePlateNumber(string.getString("carlicence"));
+                break;
+            }
+        }
+        return R.ok(monitorInfoVO);
+    }
+}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java
index 58f0813..1c3cbd9 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java
@@ -28,7 +28,9 @@
 
     @TableId(value = "id",type = IdType.AUTO)
     private Integer id;
-
+    @TableField("terminal_code")
+    @ApiModelProperty("终端编号")
+    private String terminalCode;
     @ApiModelProperty("服务城市")
     @TableField("city")
     private String city;
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/MonitorCodeDTO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/MonitorCodeDTO.java
new file mode 100644
index 0000000..229774d
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/MonitorCodeDTO.java
@@ -0,0 +1,22 @@
+package com.ruoyi.admin.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author HJL
+ * @version 1.0
+ * @since 2024-07-09 18:10
+ */
+@Data
+@ApiModel("设置师傅终端编号DTO")
+public class MonitorCodeDTO {
+
+    @ApiModelProperty("终端编号")
+    private String terminalCode;
+    @ApiModelProperty("师傅id")
+    private Integer id;
+
+
+}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/MonitorInfoVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/MonitorInfoVO.java
new file mode 100644
index 0000000..413b28c
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/MonitorInfoVO.java
@@ -0,0 +1,25 @@
+package com.ruoyi.admin.vo;
+
+import com.ruoyi.admin.entity.Franchisee;
+import com.ruoyi.admin.entity.Region;
+import com.ruoyi.admin.entity.Site;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("监控信息VO")
+public class MonitorInfoVO {
+    @ApiModelProperty(value = "监控url")
+    private String url;
+    @ApiModelProperty(value = "师傅姓名")
+    private String name;
+    @ApiModelProperty(value = "车牌号")
+    private String licensePlateNumber;
+    @ApiModelProperty(value = "服务城市")
+    private String cityName;
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
index 3ea627a..280bbd8 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
@@ -36,12 +36,7 @@
 import javax.servlet.http.HttpServletRequest;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/MasterWorker.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/MasterWorker.java
index 4170b3b..b73b30d 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/MasterWorker.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/MasterWorker.java
@@ -88,4 +88,6 @@
     @ApiModelProperty("纬度")
     @TableField("worker_lat")
     private String workerLat;
+    @TableField("terminal_code")
+    private String terminalCode;
 }

--
Gitblit v1.7.1