From 41750848c6cc6506fa107036d04b28c0f28cfba8 Mon Sep 17 00:00:00 2001
From: zmk <496160012@qq.com>
Date: 星期三, 03 七月 2024 16:19:07 +0800
Subject: [PATCH] 提交
---
javaweb-plus/javaweb-admin/src/main/java/com/javaweb/web/controller/system/SysIndexController.java | 339 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 279 insertions(+), 60 deletions(-)
diff --git a/javaweb-plus/javaweb-admin/src/main/java/com/javaweb/web/controller/system/SysIndexController.java b/javaweb-plus/javaweb-admin/src/main/java/com/javaweb/web/controller/system/SysIndexController.java
index e8b3d7a..2222f77 100644
--- a/javaweb-plus/javaweb-admin/src/main/java/com/javaweb/web/controller/system/SysIndexController.java
+++ b/javaweb-plus/javaweb-admin/src/main/java/com/javaweb/web/controller/system/SysIndexController.java
@@ -5,20 +5,28 @@
import java.util.List;
import java.util.Map;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
import com.javaweb.cms.util.CmsConstants;
import com.javaweb.common.core.domain.AjaxResult;
import com.javaweb.common.utils.Arith;
-import com.javaweb.common.utils.StringUtils;
-import com.javaweb.geo.domain.Hole;
-import com.javaweb.geo.domain.Project;
-import com.javaweb.geo.mapper.HoleMapper;
-import com.javaweb.geo.service.IProjectService;
+import com.javaweb.geo.domain.*;
+import com.javaweb.geo.enums.RecordType;
+import com.javaweb.geo.mapper.ProjectCameraMapper;
+import com.javaweb.geo.mapper.TubLogMapper;
+import com.javaweb.geo.service.*;
+import com.javaweb.geo.vo.DrillDateVo;
+import com.javaweb.geo.vo.IndexVo;
import com.javaweb.geo.vo.ProjectProcessVO;
import com.javaweb.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
import com.javaweb.common.config.Global;
import com.javaweb.common.core.controller.BaseController;
import com.javaweb.framework.util.ShiroUtils;
@@ -27,20 +35,23 @@
import com.javaweb.system.service.ISysMenuService;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
import javax.servlet.http.HttpServletRequest;
/**
* 棣栭〉 涓氬姟澶勭悊
- *
+ *
* @author ruoyi
*/
@Controller
-public class SysIndexController extends BaseController
-{
+public class SysIndexController extends BaseController {
+
+ private String prefix = "system/camera_tub";
+
+
+ private String appkey = "af786eacc71d43ef9393c028cf4face7";
+ private String secret = "9ad87671f63d2258af6fd9b2e5fa6005";
+ private String postUrl ="https://open.ys7.com/api/lapp/token/get";
+
@Autowired
private ISysMenuService menuService;
@@ -51,9 +62,25 @@
private IProjectService projectService;
@Autowired
- private HoleMapper holeMapper;
+ private IHoleService holeService;
- private String getAdminIndex(){
+ @Autowired
+ private IHoleMediaService holeMediaService;
+
+ @Autowired
+ private TubLogMapper tubLogMapper;
+
+ @Autowired
+ private ProjectCameraMapper projectCameraMapper;
+
+ @Autowired
+ private IProjectCameraService cameraService;
+
+ @Autowired
+ private IHoleLogService holeLogService;
+
+
+ private String getAdminIndex() {
return configService.selectConfigByKey(CmsConstants.KEY_ADMIN_INDEX);
}
@@ -62,10 +89,19 @@
return "forward:/index";
}
+ @RequestMapping("/system/camera")
+ public String cameraList() {
+ return prefix + "/camera_list";
+ }
+
+ @RequestMapping("/system/tub")
+ public String tubList() {
+ return prefix + "/tub_list";
+ }
+
// 绯荤粺棣栭〉
@GetMapping("/index")
- public String index(ModelMap mmap)
- {
+ public String index(ModelMap mmap) {
// 鍙栬韩浠戒俊鎭�
SysUser user = ShiroUtils.getSysUser();
// 鏍规嵁鐢ㄦ埛id鍙栧嚭鑿滃崟
@@ -76,9 +112,9 @@
mmap.put("demoEnabled", Global.isDemoEnabled());
String indePage = this.getAdminIndex();
- if(CmsConstants.ADMIN_INDEX_TOP_MENU.equals(indePage)){
+ if (CmsConstants.ADMIN_INDEX_TOP_MENU.equals(indePage)) {
return CmsConstants.ADMIN_INDEX_TOP_MENU; // index_topMenu
- }else{
+ } else {
return "index";
}
}
@@ -86,53 +122,52 @@
// 绯荤粺棣栭〉椤堕儴鑿滃崟
@PostMapping("/index/getMenu")
@ResponseBody
- public AjaxResult getMenu(HttpServletRequest request)
- {
+ public AjaxResult getMenu(HttpServletRequest request) {
// 鍙栬韩浠戒俊鎭�
SysUser user = ShiroUtils.getSysUser();
// 鏍规嵁鐢ㄦ埛id鍙栧嚭鑿滃崟
List<SysMenu> menus = menuService.selectMenusByUser(user);
return AjaxResult.success(menus);
}
+
// 鍒囨崲涓婚
@GetMapping("/system/switchSkin")
- public String switchSkin(ModelMap mmap)
- {
+ public String switchSkin(ModelMap mmap) {
return "skin";
}
// 绯荤粺浠嬬粛
@GetMapping("/system/main")
- public String main(ModelMap mmap)
- {
+ public String main(ModelMap mmap) {
mmap.put("version", Global.getVersion());
-
+
+ String loginname = ShiroUtils.getLoginName();
+ mmap.put("loginuser",loginname);
return "main";
}
// 绯荤粺浠嬬粛
@ResponseBody
- @GetMapping("/system/project")
- public AjaxResult project()
- {
+ @GetMapping("/system/stat/project")
+ public AjaxResult project() {
AjaxResult ajaxResult = AjaxResult.success();
List<Project> projects = projectService.selectProjectList(new Project());
- ajaxResult.put("projects",projects);
+ ajaxResult.put("projects", projects);
return ajaxResult;
}
+
/**
* 鎬昏繘搴�
* @return
*/
@ResponseBody
- @GetMapping("/system/totalProcess")
- public AjaxResult totalProcess()
- {
+ @GetMapping("/system/stat/totalProcess")
+ public AjaxResult totalProcess() {
AjaxResult ajaxResult = AjaxResult.success();
- Hole hole = holeMapper.selectHoleTotalProcess();
- Double data = Arith.div(hole.getFootageCpl(),hole.getFootage(),2) ;
- ajaxResult.put("pointerData",data);
+ Hole hole = holeService.selectHoleTotalProcess();
+ Double data = Arith.div(hole.getFootageCpl(), hole.getFootage(), 2);
+ ajaxResult.put("pointerData", data);
return ajaxResult;
}
@@ -141,36 +176,220 @@
* @return
*/
@ResponseBody
- @GetMapping("/system/projectProcess")
- public AjaxResult projectProcess()
- {
+ @GetMapping("/system/stat/projectProcess")
+ public AjaxResult projectProcess() {
AjaxResult ajaxResult = AjaxResult.success();
- List<Hole> holes = holeMapper.selectHoleProjectProcess();
- Map<String,Double> holeMap = new HashMap<>();
- for(Hole hole : holes){
- Double val = Arith.div(hole.getFootageCpl(),hole.getFootage(),2) ;
- val = Arith.round(val * 100,2);
- holeMap.put(hole.getProjectId(),val) ;
+ List<Hole> holes = holeService.selectHoleProjectProcess();
+ Map<String, Double> holeMap = new HashMap<>();
+ for (Hole hole : holes) {
+ Double val =0.0d;
+ if(ObjectUtil.isNotEmpty(hole.getFootageCpl()) && ObjectUtil.isNotEmpty(hole.getFootage())) {
+ val = Arith.div(hole.getFootageCpl(), hole.getFootage(), 2);
+ val = Arith.round(val * 100, 2);
+ }
+ holeMap.put(hole.getProjectId(), val);
}
List<Project> projects = projectService.selectProjectList(new Project());
- List<ProjectProcessVO> vos = new ArrayList<>();
- for(int i = 0 ; i<projects.size();i++ ){
- String ids= projects.get(i).getIds();
- Double val = holeMap.get(ids);
- ProjectProcessVO vo = new ProjectProcessVO();
- vo.setRanking(i + 1);
- vo.setStation(projects.get(i).getCode());
- vo.setValue(val);
- if(val==null){
- vo.setValue(0.0d);
- }
- vos.add(vo);
- }
+ List<ProjectProcessVO> vos = new ArrayList<>();
+ ProjectProcessVO vo;
+ if (!ObjectUtils.isEmpty(projects)) {
+ for (int i = 0; i < projects.size(); i++) {
+ String ids = projects.get(i).getIds();
+ Double val = holeMap.get(ids);
+ vo = new ProjectProcessVO();
- ajaxResult.put("projectData",vos);
+ vo.setIds(projects.get(i).getIds());
+ vo.setRanking(i + 1);
+ vo.setStation(projects.get(i).getFullName());
+ vo.setValue(val);
+ vo.setLng(projects.get(i).getLng());
+ vo.setLat(projects.get(i).getLat());
+
+
+ if (val == null) {
+ vo.setValue(0.0d);
+ }
+ String []statusName ={"鍗忚皟涓�","寰呭紑宸�","杩涜涓�"};
+ String status = projects.get(i).getStatus();
+ if(status.equals("0")){
+ vo.setStatus(statusName[0]);
+ }else if(status.equals("1")){
+ vo.setStatus(statusName[1]);
+ }else if(status.equals("2")){
+ vo.setStatus(statusName[2]);
+ }else{
+ vo.setStatus("鏈煡");
+ }
+ vos.add(vo);
+ }
+ }
+ ajaxResult.put("projectData", vos);
return ajaxResult;
}
-
+
+
+ /**
+ * 鏁伴噺缁熻
+ *
+ * @return
+ */
+ @ResponseBody
+ @GetMapping("/system/stat/indexDataCount")
+ public AjaxResult indexDataCount() {
+ IndexVo result = new IndexVo();
+ //=============================鏌ヨ鍦哄湴鏁伴噺===============================
+ List<Project> projectList = projectService.selectProjectCountByStatus();
+ if (!ObjectUtils.isEmpty(projectList)) {
+ for (Project item : projectList) {
+ if (RecordType.projectStatus0.getId().equals(item.getStatus())) {
+ result.setProjectStatus0(item.getStatusNumber());
+ }
+ if (RecordType.projectStatus1.getId().equals(item.getStatus())) {
+ result.setProjectStatus1(item.getStatusNumber());
+ }
+ if (RecordType.projectStatus2.getId().equals(item.getStatus())) {
+ result.setProjectStatus2(item.getStatusNumber());
+ }
+ }
+ }
+ if (ObjectUtils.isEmpty(result.getProjectStatus0())) {
+ result.setProjectStatus0(0);
+ }
+ if (ObjectUtils.isEmpty(result.getProjectStatus1())) {
+ result.setProjectStatus1(0);
+ }
+ if (ObjectUtils.isEmpty(result.getProjectStatus2())) {
+ result.setProjectStatus2(0);
+ }
+ //=============================鏌ヨ杩涘昂===============================
+ Hole hole = holeService.selectHoleTotalProcess();
+ result.setFootageCplCount(hole.getFootageCpl());
+ result.setFootageCount(hole.getFootage());
+
+ //=============================鏌ヨ璧勬枡===============================
+ HoleMedia holeMedia = holeMediaService.selectHoleMediaNumber();
+ result.setFileCount(holeMedia.getNumber());
+
+ Integer cameraCount = projectCameraMapper.count();
+ result.setCameraCount(cameraCount);
+ return AjaxResult.success("鏌ヨ鎴愬姛",result);
+ }
+
+ /**
+ * 缁熻鏉愭枡鐨勬秷鑰�
+ * @return
+ */
+ @ResponseBody
+ @GetMapping("/system/stat/tubLogData")
+ public AjaxResult tubLogData() {
+ AjaxResult ajaxResult = new AjaxResult();
+ List<TubLog> tubLogs = tubLogMapper.countTubLogDate(null);
+ ajaxResult.put("tubLogs",tubLogs);
+ return ajaxResult;
+ }
+
+ /**
+ * 鑾峰彇鍦ㄧ嚎鎽勫儚澶寸殑淇℃伅
+ * @return
+ */
+ @ResponseBody
+ @GetMapping("/system/stat/cameraData")
+ public AjaxResult cameraData() {
+ AjaxResult ajaxResult = new AjaxResult();
+ List<ProjectCamera> cameraDataList = cameraService.selectCameraDataOnLine();
+ ajaxResult.put("cameraData",cameraDataList);
+ return ajaxResult;
+ }
+
+ /**
+ * 鏍规嵁projectId鑾峰彇鍦ㄧ嚎鎽勫儚澶寸殑淇℃伅
+ * @return
+ */
+ @ResponseBody
+ @GetMapping("/system/stat/cameraData/{projectId}")
+ public AjaxResult cameraData2(@PathVariable("projectId") String projectId) {
+ AjaxResult ajaxResult = new AjaxResult();
+
+ ProjectCamera param = new ProjectCamera();
+ param.setProjectId(projectId);
+ List<ProjectCamera> cameraDataList = cameraService.selectProjectCameraList(param);
+ if (!ObjectUtils.isEmpty(cameraDataList)){
+ for (ProjectCamera item : cameraDataList) {
+ String url = item.getIp();
+ Map<String, Object> paramMap = new HashMap<>();
+ paramMap.put("appKey", appkey);
+ paramMap.put("appSecret", secret);
+
+ HttpResponse response = HttpRequest.post(postUrl) .form(paramMap).execute();
+ String body = response.body();
+ JSONObject jsonObject = JSONUtil.parseObj(body);
+ String code = jsonObject.getStr("code");
+ StringBuffer buffer = new StringBuffer();
+ if(code.equals("200")){
+ JSONObject data = (JSONObject) jsonObject.get("data");
+ String token = data.getStr("accessToken");
+ buffer.append("https://open.ys7.com/console/jssdk/pc.html?accessToken=");
+ buffer.append(token);
+ buffer.append("&url=");
+ buffer.append(url);
+ }
+ logger.debug(buffer.toString());
+ item.setUrl(buffer.toString());
+ }
+ }
+ ajaxResult.put("cameraDataList",cameraDataList);
+ return ajaxResult;
+ }
+
+ /**
+ * 鏍规嵁projectId鑾峰彇鍦ㄧ嚎鎽勫儚澶寸殑淇℃伅
+ * @return
+ */
+ @GetMapping("/player")
+ public String player(String projectId,ModelMap mmap) {
+ ProjectCamera param = new ProjectCamera();
+ param.setProjectId(projectId);
+ List<ProjectCamera> cameraDataList = cameraService.selectProjectCameraList(param);
+ if (!ObjectUtils.isEmpty(cameraDataList)){
+ for (ProjectCamera item : cameraDataList) {
+ String url = item.getIp();
+ Map<String, Object> paramMap = new HashMap<>();
+ paramMap.put("appKey", appkey);
+ paramMap.put("appSecret", secret);
+
+ HttpResponse response = HttpRequest.post(postUrl) .form(paramMap).execute();
+ String body = response.body();
+ JSONObject jsonObject = JSONUtil.parseObj(body);
+ String code = jsonObject.getStr("code");
+ StringBuffer buffer = new StringBuffer();
+ if(code.equals("200")){
+ JSONObject data = (JSONObject) jsonObject.get("data");
+ String token = data.getStr("accessToken");
+ buffer.append("https://open.ys7.com/console/jssdk/pc.html?accessToken=");
+ buffer.append(token);
+ buffer.append("&url=");
+ buffer.append(url);
+ }
+ item.setUrl(buffer.toString());
+ }
+ }
+
+ mmap.put("cameraDataList",cameraDataList);
+ return prefix + "/player2";
+ }
+
+ /**
+ * 缁熻鏈�杩�10澶╄繘灏洪噺
+ * @return
+ */
+ @ResponseBody
+ @GetMapping("/system/stat/sumHoleLog")
+ public AjaxResult sumHoleLog() {
+ AjaxResult ajaxResult = AjaxResult.success();
+ List<DrillDateVo> drillDateList = holeLogService.SUMHoleLog();
+ ajaxResult.put("drillDateList",drillDateList);
+ return ajaxResult;
+ }
}
--
Gitblit v1.9.1