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