From 7ddd07d908bc0215af8243fdc8bb3e18fc7286f5 Mon Sep 17 00:00:00 2001 From: liuguijing <123456> Date: Thu, 14 Sep 2023 20:51:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DyLevelController.java | 5 +- .../controller/TermSetController.java | 3 + .../controller/TerminalController.java | 9 +- .../controller/TerminalPhotoController.java | 13 - .../src/main/resources/application-test.yml | 2 +- .../xymanager_common/constant/Constants.java | 32 ++- .../dto/TerminalsAndStatusAndLastPicDto.java | 6 + .../dto/TerminalsAndStatusDto.java | 9 +- .../dto/TerminalsWithHeart.java | 5 +- .../entity/TerminalScheduleDetails.java | 2 +- .../entity/TerminalSchedulesTemp.java | 6 + .../xymanager_common/entity/Terminals.java | 10 +- .../TerminalAndLastPicListExcelModel.java | 15 ++ .../model/TerminalListModel.java | 17 +- .../model/TerminalScheduleRuleModel.java | 12 +- .../TerminalScheduleRuleTimeListModel.java | 17 +- .../shxy/xymanager_common/util/CmaUtil.java | 19 +- .../util/xinyin/ProcessExecUtils.java | 38 ++- .../util/xinyin/ScheduleListUtils.java | 241 +++++++++++------- .../util/xinyin/TerminalUtils.java | 30 ++- .../vo/RelateTerminalListRuleIdVo.java | 7 +- .../xymanager_common/vo/ScheduleRuleVo.java | 18 +- .../vo/TerminalPhotoSelectVo.java | 3 + .../xymanager_common/vo/TerminalSelectVo.java | 3 + .../shxy/xymanager_common/vo/TerminalVo.java | 11 +- .../xymanager_common/vo/UpdateTerminalVo.java | 11 +- .../shxy/xymanager_common/vo/VideoGetVo.java | 1 - .../shxy/xymanager_common/vo/VoiceCtrlVo.java | 1 - .../shxy/xymanager_dao/dao/DyLevelDao.java | 4 +- .../dao/TerminalChannelMapperDao.java | 3 +- .../dao/TerminalScheduleDetailsDao.java | 6 +- .../dao/TerminalSchedulesTempDao.java | 2 +- .../shxy/xymanager_dao/dao/TerminalsDao.java | 2 +- .../src/main/resources/mappers/DyLevelDao.xml | 7 + .../mappers/TerminalChannelMapperDao.xml | 20 +- .../resources/mappers/TerminalChannelsDao.xml | 41 +-- .../mappers/TerminalScheduleDetailsDao.xml | 11 +- .../mappers/TerminalScheduleTempDao.xml | 12 +- .../resources/mappers/TerminalStatusDao.xml | 2 + .../main/resources/mappers/TerminalsDao.xml | 120 ++++++--- .../src/main/resources/mappers/TowerDao.xml | 2 +- .../interaction/JwtInterceptor.java | 1 - .../shxy/xymanager_service/cache/XyCache.java | 1 + .../impl/CacheServiceImpl.java | 5 +- .../impl/DyLevelServiceImpl.java | 80 +++++- .../impl/LineServiceImpl.java | 12 +- .../impl/TermSetServiceImpl.java | 25 +- .../impl/TerminalChannelServiceImpl.java | 64 ++++- .../impl/TerminalPhotoServiceImpl.java | 126 ++++----- .../impl/TerminalScheduleRuleServiceImpl.java | 181 +++++++------ .../impl/TerminalServiceImpl.java | 63 ++++- .../service/DyLevelService.java | 2 +- .../service/TerminalPhotoService.java | 1 - .../service/TerminalService.java | 2 +- 54 files changed, 919 insertions(+), 422 deletions(-) diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/DyLevelController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/DyLevelController.java index 6cb7ddf..cfcd7be 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/DyLevelController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/DyLevelController.java @@ -16,6 +16,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.RequestBody; @@ -36,8 +37,8 @@ public class DyLevelController extends BaseController { @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/getdyTreeList") @Log(title = "获取电压等级树状列表接口", type = "查询") - public ResponseReult getdyTreeList() { - ServiceBody serviceBody = dyLevelService.getdyTreeList(); + public ResponseReult getdyTreeList(@Param("type") Integer type) { + ServiceBody serviceBody = dyLevelService.getdyTreeList(type); if (serviceBody.getCode() == ServiceStatus.SUCCESS) { return ResponseReult.success(serviceBody.getData()); } else { diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TermSetController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TermSetController.java index 1f34ca7..380d6b9 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TermSetController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TermSetController.java @@ -5,6 +5,7 @@ import com.shxy.xymanager_common.base.BaseController; import com.shxy.xymanager_common.base.ResponseReult; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.bean.ServiceStatus; +import com.shxy.xymanager_common.entity.RequestResults; import com.shxy.xymanager_common.model.*; import com.shxy.xymanager_common.vo.*; import com.shxy.xymanager_service.service.TermSetService; @@ -54,4 +55,6 @@ public class TermSetController extends BaseController { return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); } } + + } diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java index dceeca6..30ed9a9 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java @@ -17,6 +17,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.validation.annotation.Validated; @@ -257,8 +258,8 @@ public class TerminalController extends BaseController { @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/getOnlineTerminalList") @Log(title = "获取设备列表", type = "查询") - public ResponseReult> getOnlineTerminalList() { - ServiceBody> serviceBody = terminalService.getOnlineTerminalList(); + public ResponseReult> getOnlineTerminalList(@Param("type") Integer type) { + ServiceBody> serviceBody = terminalService.getOnlineTerminalList(type); if (serviceBody.getCode() == ServiceStatus.SUCCESS) { return ResponseReult.success(serviceBody.getData()); } else { @@ -270,8 +271,8 @@ public class TerminalController extends BaseController { @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/getOnlineTerminalListExcel") @Log(title = "导出设备在线和心跳时间和照片时间列表Excel", type = "查询") - public void getOnlineTerminalListExcel(HttpServletResponse response) throws IOException { - ServiceBody> serviceBody = terminalService.getOnlineTerminalList(); + public void getOnlineTerminalListExcel(HttpServletResponse response,@Param("type") Integer type) throws IOException { + ServiceBody> serviceBody = terminalService.getOnlineTerminalList(type); EasyExcelUtil.createExcel(response,"设备在线表",serviceBody.getData(), TerminalAndLastPicListExcelModel.class); } diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java index 727631d..f7f3123 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java @@ -94,19 +94,6 @@ public class TerminalPhotoController extends BaseController { } } - @ApiOperation(value = "拍照时间表查询", notes = "拍照时间表查询", httpMethod = "POST") - @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) - @RequestMapping("/selectPhotoTime") - @Log(title = "拍照时间表查询", type = "查询") - public ResponseReult selectPhotoTime(@RequestBody @Validated TerminalReqPhotoTimeVo vo) { - ServiceBody serviceBody = terminalPhotoService.selectPhotoTime(vo); - if (serviceBody.getCode() == ServiceStatus.SUCCESS) { - return ResponseReult.success(serviceBody.getData()); - } else { - return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); - } - } - @ApiOperation(value = "图片查询", notes = "图片查询接口", httpMethod = "POST") @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/getPhotoList") diff --git a/xymanager_admin/src/main/resources/application-test.yml b/xymanager_admin/src/main/resources/application-test.yml index c17658e..60ac12e 100644 --- a/xymanager_admin/src/main/resources/application-test.yml +++ b/xymanager_admin/src/main/resources/application-test.yml @@ -119,7 +119,7 @@ xymanager: # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 - port: 8093 + port: 8094 servlet: # 应用的访问路径 context-path: /api diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/constant/Constants.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/constant/Constants.java index e2d4aab..79fcac4 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/constant/Constants.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/constant/Constants.java @@ -9,36 +9,40 @@ import java.util.concurrent.atomic.AtomicInteger; /** * 通用常量信息 - * - * @author xzg + * + * @author jingjing */ @Component -public class Constants -{ +public class Constants { @Value("${cma.server}") public String cmServer; @Value("${cma.port}") - public int cmaPort; + public int cmaPort; - private static String server; + public static String server; - private static int port; + public static int port; public static String CMD = ""; + public static String newCMD = ""; + public static String shpath = "/usr/local/bin/xympadmn"; + public static String serverpath = ""; + public static String portpath = ""; @PostConstruct - private void init(){ + private void init() { server = cmServer; port = cmaPort; - CMD = "/usr/local/bin/xympadmn --server="+server+" --port="+port+" --act="; + CMD = "/usr/local/bin/xympadmn --server=" + server + " --port=" + port + " --act="; + newCMD = "/usr/local/bin/xympadmn --server=" + server + " --port=" + port; + serverpath = "--server=" + server; + portpath = "--port=" + port; } - - /** * UTF-8 字符集 */ @@ -182,8 +186,8 @@ public class Constants /** * 定时任务违规的字符 */ - public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", - "org.springframework.jndi" }; + public static final String[] JOB_ERROR_STR = {"java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", + "org.springframework.jndi"}; /** * 心跳时间全局设置 @@ -193,7 +197,7 @@ public class Constants /** * 调用JNI自增ID */ - public static AtomicInteger REQUEST_ID = new AtomicInteger((int) (System.currentTimeMillis()/1000 - 1672502400)); // Based On 2023-01-01 00:00:00 + public static AtomicInteger REQUEST_ID = new AtomicInteger((int) (System.currentTimeMillis() / 1000 - 1672502400)); // Based On 2023-01-01 00:00:00 } \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndStatusAndLastPicDto.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndStatusAndLastPicDto.java index be04ce6..5164cf1 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndStatusAndLastPicDto.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndStatusAndLastPicDto.java @@ -29,6 +29,12 @@ public class TerminalsAndStatusAndLastPicDto implements Serializable { private BigInteger lastHeartbeat; + private Double latitude; + + private Double longitude; + + private Integer radius; + private List list; private static final long serialVersionUID = 1L; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndStatusDto.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndStatusDto.java index ce0a1a7..1405a0e 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndStatusDto.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndStatusDto.java @@ -1,6 +1,7 @@ package com.shxy.xymanager_common.dto; import lombok.Data; +import org.omg.CORBA.INTERNAL; import java.io.Serializable; import java.math.BigInteger; @@ -27,7 +28,7 @@ public class TerminalsAndStatusDto implements Serializable { private String essentialInfoVersion; - private Byte hasPan; + private Integer hasPan; private String bsManufacturer; @@ -41,6 +42,8 @@ public class TerminalsAndStatusDto implements Serializable { private Integer status; + private Integer protocol; + private Short signalStrength4g; private BigInteger bootTime; @@ -51,6 +54,10 @@ public class TerminalsAndStatusDto implements Serializable { private BigInteger lastHeartbeat; + private String sim; + private Date workingDate; + private Integer netType; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsWithHeart.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsWithHeart.java index 746d5f5..864e87d 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsWithHeart.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsWithHeart.java @@ -30,7 +30,7 @@ public class TerminalsWithHeart implements Serializable { private String essentialInfoVersion; - private Byte hasPan; + private Integer hasPan; private String bsManufacturer; @@ -48,6 +48,9 @@ public class TerminalsWithHeart implements Serializable { private BigInteger lastheartbeat; + private Integer protocol; + + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalScheduleDetails.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalScheduleDetails.java index 29de08b..b60a21f 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalScheduleDetails.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalScheduleDetails.java @@ -17,7 +17,7 @@ public class TerminalScheduleDetails implements Serializable { private Integer minute; - private Integer span; + private Integer preset; private Date createTime; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalSchedulesTemp.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalSchedulesTemp.java index 9fc2c63..8e2c42e 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalSchedulesTemp.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalSchedulesTemp.java @@ -21,6 +21,12 @@ public class TerminalSchedulesTemp implements Serializable { private Integer offset; + private Integer hour; + + private Integer minute; + + private Integer preset; + private Date createTime; private Date updateTime; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java index 5eb5610..cb2910f 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java @@ -26,12 +26,16 @@ public class Terminals implements Serializable { private String essentialInfoVersion; - private Byte hasPan; + private Integer hasPan; private String bsManufacturer; + private String sim; + private Date bsProductionDate; + private Date workingDate; + private String bsIdentifier; private Double latitude; @@ -46,6 +50,10 @@ public class Terminals implements Serializable { private Integer onlinestatus; + private Integer netType; + + private Integer protocol; + /*展示名字 等价与displayname 用于方便*/ private String name; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/excelbean/TerminalAndLastPicListExcelModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/excelbean/TerminalAndLastPicListExcelModel.java index 3ba1751..bc7db8b 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/excelbean/TerminalAndLastPicListExcelModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/excelbean/TerminalAndLastPicListExcelModel.java @@ -45,4 +45,19 @@ public class TerminalAndLastPicListExcelModel implements Serializable { @ApiModelProperty(value = "最新照片上传时间", example = "123456") private String pictime; + @ColumnWidth(20) + @ExcelProperty("纬度") + @ApiModelProperty(value = "纬度", example = "21321") + private Double latitude; + + @ColumnWidth(20) + @ExcelProperty("经度") + @ApiModelProperty(value = "经度", example = "213") + private Double longitude; + + @ColumnWidth(20) + @ExcelProperty("半径") + @ApiModelProperty(value = "经度", example = "123456") + private Integer radius; + } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalListModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalListModel.java index c812eff..5988718 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalListModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalListModel.java @@ -32,12 +32,21 @@ public class TerminalListModel implements Serializable { @ApiModelProperty(value = "设备编号", example = "123456") private Integer id; + @ApiModelProperty(value = "电压编号", example = "123456") + private Integer dyId; + + @ApiModelProperty(value = "电压名称", example = "123456") + private String dyName; + @ApiModelProperty(value = "线路编号", example = "123456") private Integer lineId; @ApiModelProperty(value = "线路名称", example = "123456") private String lineName; + @ApiModelProperty(value = "线路公司名称", example = "123456") + private String lineBsManufacturer; + @ApiModelProperty(value = "杆塔编号", example = "123456") private Integer towerId; @@ -63,7 +72,7 @@ public class TerminalListModel implements Serializable { private String essentialInfoVersion; @ApiModelProperty(value = "是否带云台", example = " 0: 不带云台 1:带云台") - private Byte hasPan; + private Integer hasPan; @ApiModelProperty(value = "生产厂家", example = "生产厂家") private String bsManufacturer; @@ -74,6 +83,12 @@ public class TerminalListModel implements Serializable { @ApiModelProperty(value = "出厂编号", example = "123456") private String bsIdentifier; + @ApiModelProperty(value = "地址", example = "地址") + private String address; + + @ApiModelProperty(value = "杆塔排序", example = "1") + private Integer order; + @ApiModelProperty(value = "纬度", example = "21321") private Double latitude; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalScheduleRuleModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalScheduleRuleModel.java index ac7606f..42866c7 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalScheduleRuleModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalScheduleRuleModel.java @@ -35,13 +35,13 @@ public class TerminalScheduleRuleModel implements Serializable { @ApiModelProperty(value = "任务规则编号", example = "123456") private Integer scheduleId; - @ApiModelProperty(value = "间隔", example = "213") - private Integer span; + @ApiModelProperty(value = "时", example = "213") + private Integer hour; - @ApiModelProperty(value = "开始时间", example = "2022-06-08") - private Time startTime; + @ApiModelProperty(value = "分", example = "2022-06-08") + private Integer minute; - @ApiModelProperty(value = "结束时间", example = "2022-06-08") - private Time endTime; + @ApiModelProperty(value = "预置位", example = "2022-06-08") + private Integer preset; } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalScheduleRuleTimeListModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalScheduleRuleTimeListModel.java index b72021d..ba01e13 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalScheduleRuleTimeListModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalScheduleRuleTimeListModel.java @@ -16,13 +16,24 @@ import java.util.List; public class TerminalScheduleRuleTimeListModel implements Serializable { @ApiModelProperty(value = "任务名称", example = "123456") - private List list; - + private List list; @ApiModelProperty(value = "是否最新", example = "123456") private Boolean isNew = false; @ApiModelProperty(value = "偏移量", example = "123456") - private Integer offset ; + private Integer offset; + + @Data + public static class ScheduleRuleBean { + + @ApiModelProperty(value = "时", example = "213") + private Integer hour; + + @ApiModelProperty(value = "分", example = "2022-06-08") + private Integer minute; + @ApiModelProperty(value = "预置位", example = "2022-06-08") + private Integer preset; + } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/CmaUtil.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/CmaUtil.java index 904bc35..56e1f2b 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/CmaUtil.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/CmaUtil.java @@ -1,8 +1,13 @@ package com.shxy.xymanager_common.util; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import com.shxy.xymanager_common.constant.Constants; import com.shxy.xymanager_common.dto.ScheduleDetailsDto; +import com.shxy.xymanager_common.exception.Asserts; +import com.shxy.xymanager_common.vo.ScheduleRuleVo; +import java.util.ArrayList; import java.util.List; /** @@ -97,7 +102,7 @@ public class CmaUtil { * * @return */ - public static String relateSchelduleRule(List dtoList, String cmdid, Integer requestId, Integer channel, String timestr) { + public static String relateSchelduleRule(List dtoList, String cmdid, Integer requestId, Integer channel, String timestr) { String cmd = Constants.CMD + "schedule --group=" + dtoList.size() + " --flag=1 --clientid=10 --cmdid=" + cmdid + " --reqid=" + requestId + " --channel=" + channel + " " + timestr; @@ -212,5 +217,17 @@ public class CmaUtil { return cmd; } + /** + * 装置焦距控制 + * + * @param cmdid + * @param requestId + * @return + */ + public static String cameractrl(String cmdid, Integer channel, Integer requestId, Integer ctrl) { + String cmd = Constants.CMD + "cameractrl --clientid=10 --preset=0 --cmdid=" + cmdid + " --channel=" + channel + " --ctrl=" + ctrl + " --reqid=" + requestId; + return cmd; + } + } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/ProcessExecUtils.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/ProcessExecUtils.java index d223d20..84ee1eb 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/ProcessExecUtils.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/ProcessExecUtils.java @@ -1,5 +1,6 @@ package com.shxy.xymanager_common.util.xinyin; +import com.shxy.xymanager_common.constant.Constants; import com.shxy.xymanager_common.util.StringUtils; import lombok.extern.slf4j.Slf4j; @@ -7,16 +8,16 @@ import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; +import java.util.List; import java.util.UUID; /** - * * 执行指令 + * * @author cy */ @Slf4j -public class ProcessExecUtils -{ +public class ProcessExecUtils { /** * 执行指令 @@ -48,6 +49,35 @@ public class ProcessExecUtils return sendToCode; } - + /** + * 执行指令 + */ + public static Integer execArray(List cmd) { + String[] strings = new String[cmd.size()]; + String[] cmdstring = cmd.toArray(strings); + String line = ""; + StringBuffer sb = new StringBuffer(); + String result = ""; + Integer sendToCode = -1; + try { + Process ps = Runtime.getRuntime().exec(cmdstring); + log.info("传入cmd信息:{}", cmd.toString()); + BufferedReader reader = new BufferedReader(new InputStreamReader(ps.getInputStream())); + sendToCode = ps.waitFor(); + log.info("进程返回结果:{}", sendToCode); + while ((line = reader.readLine()) != null) { + sb.append(line).append("\n"); + } + result = sb.toString(); + if (StringUtils.isNotBlank(result)) { + log.info("查询最新结果:{}", result); + } + } catch (IOException e) { + log.error("IOException", e); + } catch (InterruptedException e) { + log.error("InterruptedException", e); + } + return sendToCode; + } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/ScheduleListUtils.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/ScheduleListUtils.java index 9e2f2b9..3fce731 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/ScheduleListUtils.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/ScheduleListUtils.java @@ -33,31 +33,41 @@ public class ScheduleListUtils { ArrayList list = new ArrayList<>(); for (ScheduleRuleVo item : beans) { - Integer span = item.getSpan(); - ScheduleDetails spanrule = new ScheduleDetails(); - spanrule.setScheduleId(scheduleid); - spanrule.setHour(XyNumberUtils.delivery(span, 60)); - spanrule.setMinute(XyNumberUtils.remainder(span, 60)); - spanrule.setPreset(255); - list.add(spanrule); - - ScheduleDetails startrule = new ScheduleDetails(); - startrule.setScheduleId(scheduleid); - Time startTime = item.getStartTime(); - startrule.setHour(MyDateUtils.hour(startTime, true)); - startrule.setMinute(MyDateUtils.minute(startTime)); - startrule.setPreset(255); - list.add(startrule); - - ScheduleDetails endrule = new ScheduleDetails(); - endrule.setScheduleId(scheduleid); - Time endTime = item.getEndTime(); - endrule.setHour(MyDateUtils.hour(endTime, true)); - endrule.setMinute(MyDateUtils.minute(endTime)); - endrule.setPreset(255); - list.add(endrule); +// Integer span = item.getSpan(); +// ScheduleDetails spanrule = new ScheduleDetails(); +// spanrule.setScheduleId(scheduleid); +// spanrule.setHour(XyNumberUtils.delivery(span, 60)); +// spanrule.setMinute(XyNumberUtils.remainder(span, 60)); +// spanrule.setPreset(255); +// list.add(spanrule); +// +// ScheduleDetails startrule = new ScheduleDetails(); +// startrule.setScheduleId(scheduleid); +// Time startTime = item.getStartTime(); +// startrule.setHour(MyDateUtils.hour(startTime, true)); +// startrule.setMinute(MyDateUtils.minute(startTime)); +// startrule.setPreset(255); +// list.add(startrule); +// +// ScheduleDetails endrule = new ScheduleDetails(); +// endrule.setScheduleId(scheduleid); +// Time endTime = item.getEndTime(); +// endrule.setHour(MyDateUtils.hour(endTime, true)); +// endrule.setMinute(MyDateUtils.minute(endTime)); +// endrule.setPreset(255); +// list.add(endrule); + + ScheduleDetails rule = new ScheduleDetails(); + Integer hour = item.getHour(); + Integer minute = item.getMinute(); + Integer preset = item.getPreset(); + rule.setScheduleId(scheduleid); + rule.setHour(hour); + rule.setMinute(minute); + rule.setPreset(preset); + list.add(rule); } return list; } @@ -67,70 +77,86 @@ public class ScheduleListUtils { * 将前端时间格式转换为CMA时间表下发标准的字符串 * * @param dtoList - * @param offset * @return */ - public static String relateTime(List dtoList, int offset) { + public static String relateTime(List dtoList) { StringBuffer timestr = new StringBuffer(); - short perset = dtoList.get(0).getPreset().shortValue(); - int index = 0; - String startstring = ""; - String endstring = ""; - String spanstring = ""; - for (int i = 0; i < dtoList.size(); i++) { - short startHour = 0; - short startMin = 0; - short endHour = 0; - short endMin = 0; - short spanHour = 0; - short spanMin = 0; - if (XyNumberUtils.remainder(i, 3) == 0) { + if (CollectionUtil.isNotEmpty(dtoList)) { + short perset = dtoList.get(0).getPreset().shortValue(); + int index = 0; + String spanstring = ""; + for (int i = 0; i < dtoList.size(); i++) { index = i + 1; - spanHour = dtoList.get(i).getHour().shortValue(); - spanMin = dtoList.get(i).getMinute().shortValue(); + short spanHour = dtoList.get(i).getHour().shortValue(); + short spanMin = dtoList.get(i).getMinute().shortValue(); spanstring = " --hour" + index + "=" + spanHour + " --min" + index + "=" + spanMin + " --preset" + index + "=" + perset; - } else if (XyNumberUtils.remainder(i, 3) == 1) { - index = i + 1; - Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset); - if (add.intValue() >= 60) { - Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1); - if (add1.intValue() >= 24) { - startHour = Integer.valueOf(24).shortValue(); - startMin = Integer.valueOf(0).shortValue(); - } else { - startHour = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1).shortValue(); - startMin = XyNumberUtils.sub(add, 60).shortValue(); - } - } else { - startHour = dtoList.get(i).getHour().shortValue(); - startMin = add.shortValue(); - } - startstring = " --hour" + index + "=" + startHour + " --min" + index + "=" + startMin + " --preset" + index + "=" + perset; - } else if (XyNumberUtils.remainder(i, 3) == 2) { - index = i + 1; - Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset); - if (add.intValue() >= 60) { - Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1); - if (add1.intValue() >= 24) { - endHour = Integer.valueOf(24).shortValue(); - endMin = Integer.valueOf(0).shortValue(); - } else { - endHour = add1.shortValue(); - endMin = XyNumberUtils.sub(add, 60).shortValue(); - } - } else { - endHour = dtoList.get(i).getHour().shortValue(); - endMin = add.shortValue(); - } - endstring = " --hour" + index + "=" + endHour + " --min" + index + "=" + endMin + " --preset" + index + "=" + perset; - if (StrUtil.isNotEmpty(spanstring) && StrUtil.isNotEmpty(startstring) && StrUtil.isNotEmpty(endstring)) { - timestr.append(spanstring).append(startstring).append(endstring); - } + timestr.append(spanstring); } } return timestr.toString(); } +// public static String relateTime(List dtoList, int offset) { +// StringBuffer timestr = new StringBuffer(); +// short perset = dtoList.get(0).getPreset().shortValue(); +// int index = 0; +// String startstring = ""; +// String endstring = ""; +// String spanstring = ""; +// for (int i = 0; i < dtoList.size(); i++) { +// short startHour = 0; +// short startMin = 0; +// short endHour = 0; +// short endMin = 0; +// short spanHour = 0; +// short spanMin = 0; +// if (XyNumberUtils.remainder(i, 3) == 0) { +// index = i + 1; +// spanHour = dtoList.get(i).getHour().shortValue(); +// spanMin = dtoList.get(i).getMinute().shortValue(); +// spanstring = " --hour" + index + "=" + spanHour + " --min" + index + "=" + spanMin + " --preset" + index + "=" + perset; +// } else if (XyNumberUtils.remainder(i, 3) == 1) { +// index = i + 1; +// Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset); +// if (add.intValue() >= 60) { +// Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1); +// if (add1.intValue() >= 24) { +// startHour = Integer.valueOf(24).shortValue(); +// startMin = Integer.valueOf(0).shortValue(); +// } else { +// startHour = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1).shortValue(); +// startMin = XyNumberUtils.sub(add, 60).shortValue(); +// } +// } else { +// startHour = dtoList.get(i).getHour().shortValue(); +// startMin = add.shortValue(); +// } +// startstring = " --hour" + index + "=" + startHour + " --min" + index + "=" + startMin + " --preset" + index + "=" + perset; +// } else if (XyNumberUtils.remainder(i, 3) == 2) { +// index = i + 1; +// Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset); +// if (add.intValue() >= 60) { +// Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1); +// if (add1.intValue() >= 24) { +// endHour = Integer.valueOf(24).shortValue(); +// endMin = Integer.valueOf(0).shortValue(); +// } else { +// endHour = add1.shortValue(); +// endMin = XyNumberUtils.sub(add, 60).shortValue(); +// } +// } else { +// endHour = dtoList.get(i).getHour().shortValue(); +// endMin = add.shortValue(); +// } +// endstring = " --hour" + index + "=" + endHour + " --min" + index + "=" + endMin + " --preset" + index + "=" + perset; +// if (StrUtil.isNotEmpty(spanstring) && StrUtil.isNotEmpty(startstring) && StrUtil.isNotEmpty(endstring)) { +// timestr.append(spanstring).append(startstring).append(endstring); +// } +// } +// } +// return timestr.toString(); +// } + // /** // * 将数据库标准转为前端的时间列表 @@ -171,32 +197,49 @@ public class ScheduleListUtils { * @return */ public static ArrayList getScheduleDetailsBeans(List details) { +// ArrayList detailsBeans = new ArrayList<>(); +// TerminalScheduleRuleModel.ScheduleRuleBean scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean(); +// for (int i = 0; i < details.size(); i++) { +// ScheduleDetailsDto dto = details.get(i); +// if (XyNumberUtils.remainder(i, 3) == 0) { +// scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean(); +// Integer hour = dto.getHour(); +// Integer minute = dto.getMinute(); +// Number mul = XyNumberUtils.mul((Number) hour, 60); +// Number add = XyNumberUtils.add(mul, minute); +// scheduleDetailsBean.setId(dto.getId()); +// scheduleDetailsBean.setScheduleId(dto.getScheduleId()); +// scheduleDetailsBean.setSpan(add.intValue()); +// } else if (XyNumberUtils.remainder(i, 3) == 1) { +// Integer hour = dto +// .getHour(); +// Integer minute = dto.getMinute(); +// Time time = MyDateUtils.HHMMToTime(hour, minute); +// scheduleDetailsBean.setStartTime(time); +// } else if (XyNumberUtils.remainder(i, 3) == 2) { +// Integer hour = dto.getHour(); +// Integer minute = dto.getMinute(); +// Time time = MyDateUtils.HHMMToTime(hour, minute); +// scheduleDetailsBean.setEndTime(time); +// detailsBeans.add(scheduleDetailsBean); +// } +// } + ArrayList detailsBeans = new ArrayList<>(); - TerminalScheduleRuleModel.ScheduleRuleBean scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean(); for (int i = 0; i < details.size(); i++) { ScheduleDetailsDto dto = details.get(i); - if (XyNumberUtils.remainder(i, 3) == 0) { - scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean(); - Integer hour = dto.getHour(); - Integer minute = dto.getMinute(); - Number mul = XyNumberUtils.mul((Number) hour, 60); - Number add = XyNumberUtils.add(mul, minute); - scheduleDetailsBean.setId(dto.getId()); - scheduleDetailsBean.setScheduleId(dto.getScheduleId()); - scheduleDetailsBean.setSpan(add.intValue()); - } else if (XyNumberUtils.remainder(i, 3) == 1) { - Integer hour = dto.getHour(); - Integer minute = dto.getMinute(); - Time time = MyDateUtils.HHMMToTime(hour, minute); - scheduleDetailsBean.setStartTime(time); - } else if (XyNumberUtils.remainder(i, 3) == 2) { - Integer hour = dto.getHour(); - Integer minute = dto.getMinute(); - Time time = MyDateUtils.HHMMToTime(hour, minute); - scheduleDetailsBean.setEndTime(time); - detailsBeans.add(scheduleDetailsBean); - } + TerminalScheduleRuleModel.ScheduleRuleBean scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean(); + Integer hour = dto.getHour(); + Integer minute = dto.getMinute(); + Integer preset = dto.getPreset(); + scheduleDetailsBean.setId(dto.getId()); + scheduleDetailsBean.setScheduleId(dto.getScheduleId()); + scheduleDetailsBean.setHour(hour); + scheduleDetailsBean.setMinute(minute); + scheduleDetailsBean.setPreset(preset); + detailsBeans.add(scheduleDetailsBean); } + return detailsBeans; } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/TerminalUtils.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/TerminalUtils.java index e001e95..8ebbf35 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/TerminalUtils.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/xinyin/TerminalUtils.java @@ -1,6 +1,7 @@ package com.shxy.xymanager_common.util.xinyin; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUnit; import com.shxy.xymanager_common.dto.LineAndDyNameDto; @@ -19,6 +20,7 @@ import org.springframework.stereotype.Component; import java.math.BigInteger; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -72,6 +74,16 @@ public class TerminalUtils { } } + /** + * 生成装置超时时间 + */ + public static BigInteger generateOnlineTime() { + DateTime offset = MyDateUtils.offset(new Date(), DateField.MINUTE, -hearttime); + long l = MyDateUtils.TimeMillSecond2Second(offset); + BigInteger bigInteger = BigInteger.valueOf(l); + return bigInteger; + } + /** * 返回图片视频地址 */ @@ -164,7 +176,7 @@ public class TerminalUtils { for (int y = 0; y < photoList.size(); y++) { TerminalPhoto terminalPhoto = photoList.get(y); if (BeanUtil.isNotEmpty(terminalPhoto)) { - if (terminalPhoto.getId() != null) { + if (terminalPhoto.getId() != null && photoId != null) { if (terminalPhoto.getId().longValue() == photoId.longValue()) { Integer mediatype = terminalPhoto.getMediaType(); if (mediatype != null && (mediatype.intValue() == 0 || mediatype.intValue() == 1)) { @@ -292,7 +304,7 @@ public class TerminalUtils { } - public static List fdsa(String requestIp, List list, Map terminalMap, Map lineMap, Map termchannelMap, Map termchannelMapMap) { + public static List fdsa(String requestIp, List list, Map terminalMap, Map lineMap, Map towerMap, Map termchannelMap, Map termchannelMapMap) { List beans = new ArrayList<>(); for (TerminalPhoto item : list) { TerminalPhotoSelectListModel.PhotoBean photoBean = new TerminalPhotoSelectListModel.PhotoBean(); @@ -302,8 +314,18 @@ public class TerminalUtils { Integer mediaType = item.getMediaType(); if (mediaType != null && (mediaType.intValue() == 0 || mediaType.intValue() == 1)) { photoBean.setDisplayname(terminals.getDisplayName()); - photoBean.setLineid(terminals.getLineid()); - photoBean.setLinename(lineMap.get(terminals.getLineid()).getName()); + Integer towerid = terminals.getTowerid(); + if (towerMap != null) { + TowerDto towerDto = towerMap.get(towerid); + Integer lineId = towerDto.getLineId(); + photoBean.setLineid(lineId); + if (lineMap != null) { + LineAndDyNameDto lineAndDyNameDto = lineMap.get(lineId); + if (lineAndDyNameDto != null) { + photoBean.setLinename(lineAndDyNameDto.getName()); + } + } + } Integer channelId = item.getChannelId(); photoBean.setChannelid(channelId); photoBean.setCmdid(terminals.getCmdid()); diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/RelateTerminalListRuleIdVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/RelateTerminalListRuleIdVo.java index 38d4882..b309e6e 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/RelateTerminalListRuleIdVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/RelateTerminalListRuleIdVo.java @@ -31,10 +31,15 @@ public class RelateTerminalListRuleIdVo { @NotNull(message = "通道编号列表不能缺少") @ApiModelProperty(value = "通道编号列表", example = "123455") - private List channelidlist; + private Integer channelid; @ApiModelProperty(value = "偏移量", example = "123455") private Integer offset; + + @NotNull(message = "不能传入空值") + @ApiModelProperty(value = "任务规则对象数组", required = true, example = "A0001") + private List list; + } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/ScheduleRuleVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/ScheduleRuleVo.java index f33b908..be4dc16 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/ScheduleRuleVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/ScheduleRuleVo.java @@ -13,17 +13,17 @@ import java.util.List; @ApiModel(value = "任务规则对象详情", description = "任务规则对象详情描述") public class ScheduleRuleVo { - @ApiModelProperty(value = "开始时间", example = "单位") - @NotBlank(message = "开始时间不能缺少") - private Time startTime; + @ApiModelProperty(value = "时", example = "单位") + @NotBlank(message = "时不能缺少") + private Integer hour; - @ApiModelProperty(value = "结束时间", example = "型号型号") - @NotBlank(message = "结束时间不能缺少") - private Time endTime; + @ApiModelProperty(value = "分", example = "型号型号") + @NotBlank(message = "分不能缺少") + private Integer minute; - @ApiModelProperty(value = "时间间隔", example = "型号型号") - @NotBlank(message = "时间间隔不能缺少") - private Integer span; + @ApiModelProperty(value = "预置位", example = "型号型号") + @NotBlank(message = "预置位不能缺少") + private Integer preset; } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoSelectVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoSelectVo.java index fd57f1d..7a83a61 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoSelectVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoSelectVo.java @@ -38,6 +38,9 @@ public class TerminalPhotoSelectVo { @ApiModelProperty(value = "查询结束时间", example = "123455") private Date endtime; + @ApiModelProperty(value = "搜索内容", example = "搜索内容字段") + private String search; + @Min(value = 1, message = "分页位置最小从1开始") @ApiModelProperty(value = "分页位置从1开始", required = true, example = "1") private int pageindex; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalSelectVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalSelectVo.java index ae792a3..01c59e5 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalSelectVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalSelectVo.java @@ -24,6 +24,9 @@ public class TerminalSelectVo { @ApiModelProperty(value = "搜索内容", example = "搜索内容") private String search; + @ApiModelProperty(value = "在线离线", example = "0--掉线 1--在线") + private Integer isonline; + @Min(value = 1, message = "分页位置最小从1开始") @ApiModelProperty(value = "分页位置从1开始", required = true, example = "1") private int pageindex; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalVo.java index f2474eb..0027768 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalVo.java @@ -45,11 +45,20 @@ public class TerminalVo { private String essentialInfoVersion; @ApiModelProperty(value = "是否带云台", example = " 0: 不带云台 1:带云台") - private Byte hasPan; + private Integer hasPan; @ApiModelProperty(value = "生产厂家", example = "生产厂家") private String bsManufacturer; + @ApiModelProperty(value = "规约版本", example = "规约版本") + private Integer protocol; + + @ApiModelProperty(value = "网络类型", example = "网络类型") + private Integer netType; + + @ApiModelProperty(value = "投运日期", example = "2022-06-12") + private Date workingDate; + @ApiModelProperty(value = "生产日期", example = "2022-06-12") private Date bsProductionDate; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/UpdateTerminalVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/UpdateTerminalVo.java index 1ad1d45..d546a29 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/UpdateTerminalVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/UpdateTerminalVo.java @@ -50,11 +50,20 @@ public class UpdateTerminalVo { private String essentialInfoVersion; @ApiModelProperty(value = "是否带云台", example = " 0: 不带云台 1:带云台") - private Byte hasPan; + private Integer hasPan; @ApiModelProperty(value = "生产厂家", example = "生产厂家") private String bsManufacturer; + @ApiModelProperty(value = "规约版本", example = "规约版本") + private Integer protocol; + + @ApiModelProperty(value = "网络类型", example = "网络类型") + private Integer netType; + + @ApiModelProperty(value = "投运日期", example = "2022-06-12") + private Date workingDate; + @ApiModelProperty(value = "生产日期", example = "2022-06-12") private Date bsProductionDate; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VideoGetVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VideoGetVo.java index 6d237ce..3b322f4 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VideoGetVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VideoGetVo.java @@ -19,5 +19,4 @@ public class VideoGetVo { @ApiModelProperty(value = "通道编号", example = "01") private Integer channelId; - } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VoiceCtrlVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VoiceCtrlVo.java index 8744f09..e3d8d63 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VoiceCtrlVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VoiceCtrlVo.java @@ -22,5 +22,4 @@ public class VoiceCtrlVo { @ApiModelProperty(value = "声光报警开关", example = "0:关闭 1:开启") private Integer ctrl; - } diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/DyLevelDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/DyLevelDao.java index b62bd49..47ae45b 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/DyLevelDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/DyLevelDao.java @@ -13,7 +13,7 @@ public interface DyLevelDao { List selectDyAndLineAndTowerAnTermList(@Param("dyid") Integer dyid, @Param("lineid") Integer lineid, @Param("towerid") Integer towerid, @Param("termid") Integer termid, @Param("search") String search, @Param("status") Integer status); - List selectDyAndLineAndTowerList(@Param("dyid") Integer dyid, @Param("lineid") Integer lineid, @Param("towerid") Integer towerid,@Param("status") Integer status); + List selectDyAndLineAndTowerList(@Param("dyid") Integer dyid, @Param("lineid") Integer lineid, @Param("towerid") Integer towerid, @Param("status") Integer status); int deleteByPrimaryKey(Integer id); @@ -25,7 +25,7 @@ public interface DyLevelDao { List selectAll(@Param("status") Integer status); - List selectTreeList(@Param("status") Integer status); + List selectTreeList( @Param("status") Integer status); List selectTreeListByChannelId(@Param("channelid") Integer channelid, @Param("status") Integer status); diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalChannelMapperDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalChannelMapperDao.java index d4416fb..9efa694 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalChannelMapperDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalChannelMapperDao.java @@ -26,7 +26,8 @@ public interface TerminalChannelMapperDao { List selectAll(); - List selectAllByPhotoTime(@Param("time") BigInteger time); +// List selectAllByPhotoTime(@Param("time") BigInteger time); + List selectAllByPhotoTime(@Param("status") Integer status); int updateByPrimaryKeySelective(TerminalChannelMapper record); diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalScheduleDetailsDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalScheduleDetailsDao.java index 2e94a6d..d418248 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalScheduleDetailsDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalScheduleDetailsDao.java @@ -9,10 +9,6 @@ import java.util.List; public interface TerminalScheduleDetailsDao { - int deleteByTermiAndChannel(Integer id); - - int deleteByTermidAndChannelIdList(@Param("list") List lsit); - int insert(TerminalScheduleDetails record); int insertList(@Param("list") List record, @Param("createat") Date createat, @Param("updateat") Date updateat); @@ -21,6 +17,8 @@ public interface TerminalScheduleDetailsDao { TerminalScheduleDetails selectByPrimaryKey(Integer id); + List selectByTermidAndChannelid(@Param("termid") Integer termid, @Param("channelid") Integer channelid); + int updateByPrimaryKeySelective(TerminalScheduleDetails record); int updateByPrimaryKey(TerminalScheduleDetails record); diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalSchedulesTempDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalSchedulesTempDao.java index 8340dbc..143272b 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalSchedulesTempDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalSchedulesTempDao.java @@ -13,8 +13,8 @@ public interface TerminalSchedulesTempDao { List selectByRequestId(@Param("list") List id, @Param("status") Integer status); - int deleteByPrimaryKey(Integer id); + int deleteByTermidAndChannelid(@Param("list") List record); int insert(TerminalSchedulesTemp record); diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java index 6984243..53690a9 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java @@ -18,7 +18,7 @@ public interface TerminalsDao { Terminals selectById(@Param("id") Integer id, @Param("status") Integer status); - List selectTermAndStatusList(@Param("status") Integer status, @Param("dyid") Integer dyid, @Param("lineid") Integer lineid, @Param("towerid") Integer towerid, @Param("search") String search); + List selectTermAndStatusList(@Param("status") Integer status, @Param("dyid") Integer dyid, @Param("lineid") Integer lineid, @Param("towerid") Integer towerid, @Param("search") String search,@Param("isonline") Integer isonline,@Param("time") BigInteger time); List selectTermAndStatusStatisticsList(@Param("status") Integer status); diff --git a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml index 69ab071..9fc2f08 100644 --- a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml +++ b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml @@ -22,6 +22,7 @@ + @@ -29,6 +30,7 @@ + @@ -45,6 +47,7 @@ + @@ -66,6 +69,7 @@ + @@ -189,6 +193,8 @@ d.equip_name as equip_name, d.display_name as display_name, d.model as model, + d.protocol as protocol, + d.has_pan as has_pan, e.last_heartbeat as last_heartbeat from ((((dy_level a left join `lines` b on a.id = b.dy_level_id ) left join towers c on b.id = c.line_id ) @@ -208,6 +214,7 @@ c.id AS term_id, c.tower_id AS tower_id, c.cmdid AS cmdid, + c.protocol AS protocol, ts.last_heartbeat as last_heartbeat, c.display_name AS display_name FROM diff --git a/xymanager_dao/src/main/resources/mappers/TerminalChannelMapperDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalChannelMapperDao.xml index 0d5d121..de47267 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalChannelMapperDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalChannelMapperDao.xml @@ -35,13 +35,21 @@ diff --git a/xymanager_dao/src/main/resources/mappers/TerminalScheduleDetailsDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalScheduleDetailsDao.xml index 3585e16..0ab1870 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalScheduleDetailsDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalScheduleDetailsDao.xml @@ -7,12 +7,12 @@ - + - id,term_id, channel_id, start_time, end_time, span, create_time, update_time + id,term_id, channel_id, `hour`, `minute`, preset, create_time, update_time + + delete from terminal_schedule_details where id = #{id,jdbcType=INTEGER} diff --git a/xymanager_dao/src/main/resources/mappers/TerminalScheduleTempDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalScheduleTempDao.xml index 7a4f01d..b917516 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalScheduleTempDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalScheduleTempDao.xml @@ -59,6 +59,14 @@ delete from terminal_schedule_temp where id = #{id,jdbcType=INTEGER} + + + delete from terminal_schedule_temp + where + + term_id = #{item.termId} and channel_id = #{item.channelId} + + insert into terminal_schedule_temp (id, term_id, channel_id, schedule_id, create_time, update_time @@ -71,10 +79,10 @@ insert into terminal_schedule_temp (term_id, channel_id, - schedule_id, request_id,status,create_time, update_time) + schedule_id, request_id,`hour`,`minute`,preset,`offset`,status,create_time, update_time) values - (#{item.termId},#{item.channelId},#{item.scheduleId},#{item.requestId},#{status},#{createat},#{updateat}) + (#{item.termId},#{item.channelId},#{item.scheduleId},#{item.requestId},#{item.hour},#{item.minute},#{item.preset},#{item.offset},#{status},#{createat},#{updateat}) diff --git a/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml index 7dc4477..288565d 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml @@ -33,6 +33,7 @@ + @@ -55,6 +56,7 @@ b.equip_name as equip_name, b.display_name as display_name, b.model as model, + b.protocol as protocol, a.last_heartbeat as last_heartbeat from terminal_status a, terminals b diff --git a/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml index fef2dde..5d564e2 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml @@ -7,6 +7,7 @@ + @@ -14,10 +15,13 @@ + + + @@ -32,18 +36,23 @@ - + + + + + + @@ -75,6 +84,9 @@ + + + @@ -82,10 +94,11 @@ - id, line_id,tower_id,cmdid, org_id, equip_name, display_name, model, essential_info_version, has_pan, + id + , line_id,tower_id,cmdid, org_id, equip_name, display_name, model, essential_info_version, has_pan, bs_manufacturer, bs_production_date, bs_identifier, latitude, longitude, create_time, - update_time - + update_time,sim,working_date,net_type + - select - cmdid + select cmdid from terminals where id = #{termId,jdbcType=INTEGER} - diff --git a/xymanager_dao/src/main/resources/mappers/TowerDao.xml b/xymanager_dao/src/main/resources/mappers/TowerDao.xml index 2fca196..bada74f 100644 --- a/xymanager_dao/src/main/resources/mappers/TowerDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TowerDao.xml @@ -34,7 +34,7 @@ and (t.name like "%"#{search}"%" or l.name like "%"#{search}"%" or t.address like "%"#{search}"%") - order by t.`order` asc,l.id desc + order by t.`order` asc, t.id desc diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java index df6acb2..74f975c 100644 --- a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java +++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java @@ -74,7 +74,6 @@ public class JwtInterceptor implements HandlerInterceptor { Asserts.fail(401, "登录过期"); } } - return true; } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/cache/XyCache.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/cache/XyCache.java index 3f6edf2..c5753e9 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/cache/XyCache.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/cache/XyCache.java @@ -32,6 +32,7 @@ public class XyCache { cacheService.updateGolobalMap(); + } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CacheServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CacheServiceImpl.java index eff5dc1..75f8a79 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CacheServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CacheServiceImpl.java @@ -4,18 +4,14 @@ import com.shxy.xymanager_common.dto.LineAndDyNameDto; import com.shxy.xymanager_common.dto.TermAndChannelDto; import com.shxy.xymanager_common.dto.TowerDto; import com.shxy.xymanager_common.entity.*; -import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_dao.dao.*; import com.shxy.xymanager_service.service.CacheService; -import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; -import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -50,6 +46,7 @@ public class CacheServiceImpl implements CacheService { @Autowired TerminalImgAlarmParamsDao terminalImgAlarmParamsDao; + // @Override // @Cacheable(value = "globalParams", key = "#param") // public GlobalParams getGlobalParams(String param) { diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java index 1bd7b7f..83a886b 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java @@ -27,6 +27,7 @@ import org.springframework.stereotype.Service; import java.math.BigInteger; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -55,7 +56,7 @@ public class DyLevelServiceImpl implements DyLevelService { * @return */ @Override - public ServiceBody getdyTreeList() { + public ServiceBody getdyTreeList(Integer type) { DyLineTreeListModel model = new DyLineTreeListModel(); List list = dyLevelDao.selectTreeList(CommonStatus.EFFECTIVE.value()); boolean empty = CollectionUtil.isEmpty(list); @@ -64,27 +65,80 @@ public class DyLevelServiceImpl implements DyLevelService { } else { int onlinenum = 0; int totalnum = 0; - List beans = BeanUtil.copyToList(list, DyLineTreeListModel.DyListBean.class, CopyOptions.create().ignoreCase()); - for (int i = 0; i < beans.size(); i++) { - for (int j = 0; j < beans.get(i).getList().size(); j++) { - for (int k = 0; k < beans.get(i).getList().get(j).getList().size(); k++) { + ArrayList dyListBeans = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + DyLineAndTerminalWithHeartDto dyDto = list.get(i); + List linelist = dyDto.getList(); + if (CollectionUtil.isEmpty(linelist)) { + continue; + } + DyLineTreeListModel.DyListBean dyModel = new DyLineTreeListModel.DyListBean(); + dyModel.setId(dyDto.getId()); + dyModel.setDyValue(dyDto.getDyValue()); + dyModel.setName(dyDto.getName()); + ArrayList lineBeans = new ArrayList<>(); + for (int j = 0; j < linelist.size(); j++) { + LineAndTerminalWithHeartDto lineDto = linelist.get(j); + List termlist = lineDto.getList(); + if (CollectionUtil.isEmpty(termlist)) { + continue; + } + DyLineTreeListModel.LineBean lineBean = new DyLineTreeListModel.LineBean(); + lineBean.setId(lineDto.getId()); + lineBean.setName(lineDto.getName()); + lineBean.setBsManufacturer(lineDto.getBsManufacturer()); + + ArrayList beanlist = new ArrayList<>(); + for (int k = 0; k < termlist.size(); k++){ totalnum++; - TerminalsWithHeart terminalsWithHeart = list.get(i).getList().get(j).getList().get(k); + TerminalsWithHeart terminalsWithHeart = termlist.get(k); + + DyLineTreeListModel.TerminalBean bean = new DyLineTreeListModel.TerminalBean(); + bean.setId(terminalsWithHeart.getId()); + bean.setAddress(terminalsWithHeart.getAddress()); + bean.setCmdid(terminalsWithHeart.getCmdid()); + bean.setDisplayname(terminalsWithHeart.getDisplayname()); + bean.setEquipname(terminalsWithHeart.getEquipname()); + bean.setModel(terminalsWithHeart.getModel()); + bean.setName(terminalsWithHeart.getName()); + bean.setTowerid(terminalsWithHeart.getTowerid()); BigInteger lastheartbeat = terminalsWithHeart.getLastheartbeat(); boolean b = TerminalUtils.judgeTerminalStatus(lastheartbeat); - if (b) { - beans.get(i).getList().get(j).getList().get(k).setOnlinestatus(CommonStatus.EFFECTIVE.value()); - onlinenum++; - } else { - beans.get(i).getList().get(j).getList().get(k).setOnlinestatus(CommonStatus.DELETE.value()); + if (type == null || type.intValue() == -1) {//查询全部 + if (b) { + bean.setOnlinestatus(CommonStatus.EFFECTIVE.value()); + onlinenum++; + } else { + bean.setOnlinestatus(CommonStatus.DELETE.value()); + } + beanlist.add(bean); + } else if (type.intValue() == 0) { + if (b) { + onlinenum++; + bean.setOnlinestatus(CommonStatus.EFFECTIVE.value()); + } else { + bean.setOnlinestatus(CommonStatus.DELETE.value()); + beanlist.add(bean); + } + } else if (type.intValue() == 1) { + if (b) { + onlinenum++; + bean.setOnlinestatus(CommonStatus.EFFECTIVE.value()); + beanlist.add(bean); + } else { + bean.setOnlinestatus(CommonStatus.DELETE.value()); + } } } + lineBean.setList(beanlist); + lineBeans.add(lineBean); } + dyModel.setList(lineBeans); + dyListBeans.add(dyModel); } - model.setOnlineNum(onlinenum); model.setTotalNum(totalnum); - model.setList(beans); + model.setList(dyListBeans); } return Asserts.success(model); } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java index 1424821..0102380 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java @@ -72,7 +72,8 @@ public class LineServiceImpl implements LineService { int pageindex = vo.getPageindex(); int pagesize = vo.getPagesize(); PageUtils.SetPage(pageindex, pagesize); - List list = linesDao.selectAll(CommonStatus.EFFECTIVE.value(),search); + + List list = linesDao.selectAll(CommonStatus.EFFECTIVE.value(), search); boolean empty = CollectionUtil.isEmpty(list); if (empty) { model.setList(new ArrayList<>()); @@ -147,6 +148,7 @@ public class LineServiceImpl implements LineService { int i = linesDao.updateByPrimaryKeySelective(lines, new Date()); if (i != 0) { cacheService.updateLineMap(); + cacheService.updateTowerMap(); return Asserts.success("修改成功"); } else { return Asserts.error("修改失败"); @@ -188,7 +190,13 @@ public class LineServiceImpl implements LineService { for (Terminals item : list) { LineAndGtAndChannelListModel.Bean bean = new LineAndGtAndChannelListModel.Bean(); bean.setId(item.getId()); - bean.setName(item.getDisplayName()); + String displayName = item.getDisplayName(); + if (StrUtil.isEmpty(displayName)) { + bean.setName(item.getCmdid()); + } else { + bean.setName(item.getDisplayName()); + } + beans.add(bean); } } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java index d892a7d..e92b310 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java @@ -1,22 +1,37 @@ package com.shxy.xymanager_service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateTime; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.constant.Constants; +import com.shxy.xymanager_common.dto.PhotoTimeResultDto; +import com.shxy.xymanager_common.entity.RequestResults; import com.shxy.xymanager_common.entity.Resolution; +import com.shxy.xymanager_common.entity.Terminals; +import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.model.ResolutionModel; +import com.shxy.xymanager_common.model.TerminalScheduleRuleTimeListModel; import com.shxy.xymanager_common.util.CmaUtil; +import com.shxy.xymanager_common.util.MyDateUtils; +import com.shxy.xymanager_common.util.StringUtils; import com.shxy.xymanager_common.util.xinyin.ProcessExecUtils; -import com.shxy.xymanager_common.vo.TerminalIdVo; -import com.shxy.xymanager_common.vo.VoiceCtrlVo; +import com.shxy.xymanager_common.vo.*; +import com.shxy.xymanager_dao.dao.RequestResultsDao; import com.shxy.xymanager_dao.dao.TerminalResolutionDao; +import com.shxy.xymanager_service.service.CacheService; import com.shxy.xymanager_service.service.TermSetService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.validation.constraints.NotEmpty; +import java.util.ArrayList; import java.util.List; +import java.util.Map; /** @@ -31,6 +46,12 @@ public class TermSetServiceImpl implements TermSetService { @Autowired private TerminalResolutionDao terminalResolutionDao; + @Autowired + private CacheService cacheService; + + @Autowired + private RequestResultsDao requestResultsDao; + @Override public ServiceBody alarmMark(VoiceCtrlVo vo) { String cmd = CmaUtil.alarmMark(vo.getCmdId(), vo.getCtrl()); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalChannelServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalChannelServiceImpl.java index 24d4425..bcf5449 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalChannelServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalChannelServiceImpl.java @@ -6,10 +6,7 @@ import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; import com.shxy.xymanager_common.bean.ServiceBody; -import com.shxy.xymanager_common.dto.DyLineAndTerminalAndChannelDto; -import com.shxy.xymanager_common.dto.LineAndDyNameDto; -import com.shxy.xymanager_common.dto.TermChannelAndMapperDto; -import com.shxy.xymanager_common.dto.TowerDto; +import com.shxy.xymanager_common.dto.*; import com.shxy.xymanager_common.entity.TerminalChannels; import com.shxy.xymanager_common.entity.TerminalStatus; import com.shxy.xymanager_common.entity.Terminals; @@ -21,6 +18,7 @@ import com.shxy.xymanager_common.model.TerminalChannelListModel; import com.shxy.xymanager_common.model.TerminalChannelMapperListModel; import com.shxy.xymanager_common.page.PageUtils; import com.shxy.xymanager_common.vo.*; +import com.shxy.xymanager_dao.dao.DyLevelDao; import com.shxy.xymanager_dao.dao.TerminalChannelsDao; import com.shxy.xymanager_dao.dao.TerminalPhotoDao; import com.shxy.xymanager_dao.dao.TerminalStatusDao; @@ -51,6 +49,9 @@ public class TerminalChannelServiceImpl implements TerminalChannelService { @Autowired TerminalPhotoDao terminalPhotoDao; + @Autowired + DyLevelDao dyLevelDao; + @Autowired CacheService cacheService; @@ -232,6 +233,7 @@ public class TerminalChannelServiceImpl implements TerminalChannelService { */ @Override public ServiceBody getChannelTreeList(TerminalIdVo vo) { + Integer termId = vo.getTermid(); DyLineTreeAndChannelListModel model = new DyLineTreeAndChannelListModel(); List channellist = terminalChannelsDao.selectChannelList(CommonStatus.EFFECTIVE.value()); ArrayList channels = new ArrayList<>(); @@ -244,6 +246,60 @@ public class TerminalChannelServiceImpl implements TerminalChannelService { channels.add(channelChooseBean); } model.setChannellist(channels); + +// Map terminalMap = cacheService.getTerminalMap(); +// Map towerMap = cacheService.getTowerMap(); +// Map lineMap = cacheService.getLineMap(); +// List dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(null, null, null, termId, null, CommonStatus.EFFECTIVE.value()); + + +// ArrayList dymodellist = new ArrayList<>(); +// for (int i = 0; i < dtos.size(); i++) { +// DyAndLineAndTowerAndTermDto dyDto = dtos.get(i); +// List linelist = dyDto.getList(); +// DyLineTreeAndChannelListModel.DyListBean dyListBean = new DyLineTreeAndChannelListModel.DyListBean(); +// dyListBean.setId(dyDto.getId()); +// dyListBean.setName(dyDto.getName()); +// dyListBean.setDyValue(dyDto.getDyValue()); +// +// ArrayList linemodellist = new ArrayList<>(); +// if (CollectionUtil.isEmpty(linelist)) { +// continue; +// } +// for (int j = 0; j < linelist.size(); j++) { +// LineAndTowerAndTermDto lineDto = linelist.get(j); +// List termlist = lineDto.getList(); +// DyLineTreeAndChannelListModel.LineBean linebean = new DyLineTreeAndChannelListModel.LineBean(); +// linebean.setId(lineDto.getId()); +// linebean.setName(lineDto.getName()); +// linebean.setBsManufacturer(lineDto.getBsManufacturer()); +// if (CollectionUtil.isEmpty(termlist)) { +// continue; +// } +// for (int k = 0; k < termlist.size(); k++) { +// TowerAndTermDto towerAndTermDto = termlist.get(k); +// List list = towerAndTermDto.getList(); +// for (int l = 0; l < list.size(); l++) { +// Terminals terminals = list.get(l); +// DyLineTreeAndChannelListModel.TerminalBean termBean = new DyLineTreeAndChannelListModel.TerminalBean(); +// termBean.setId(terminals.getId()); +// termBean.setCmdid(terminals.getCmdid()); +// termBean.setName(terminals.getName()); +// termBean.setTowerid(terminals.getTowerid()); +// } +// +// } +// linebean.setList(); +// linemodellist.add(linebean); +// } +// +// dyListBean.setList(linemodellist); +// +// dymodellist.add(dyListBean); +// } + +// model.setList(dymodellist); + List list = terminalChannelsDao.selectAllAndChannelByTermid(vo.getTermid(), CommonStatus.EFFECTIVE.value()); boolean empty = CollectionUtil.isEmpty(list); if (empty) { diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java index 799752a..e914520 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java @@ -123,7 +123,11 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { if (StringUtils.isNotBlank(thumbPhotoPath)) { photoBean.setThumb(thumbPhotoPath); } - photoBean.setChannelName(termchannelMap.get(channelId).getChannelName()); + if (termchannelMap != null) { + if (termchannelMap.get(channelId) != null) { + photoBean.setChannelName(termchannelMap.get(channelId).getChannelName()); + } + } if (termchannelMapMap != null) { TerminalChannelMapper terminalChannelMapper = termchannelMapMap.get(termId + "#" + channelId); if (terminalChannelMapper != null) { @@ -165,7 +169,10 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { Integer channelid = vo.getChannelid(); int pageindex = vo.getPageindex(); int pagesize = vo.getPagesize(); - + String search = vo.getSearch(); + if (StrUtil.isEmpty(search)) { + search = null; + } Date starttime = vo.getStarttime(); Date endtime = vo.getEndtime(); long start = MyDateUtils.TimeMillSecond2Second(DateTime.of(starttime)); @@ -178,41 +185,66 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { List dtos = new ArrayList<>(); if (dyid == null || dyid.intValue() == -1) { - PageUtils.SetPage(pageindex, pagesize); - list = terminalPhotoDao.selectPhotoListByTermList(termidlist, channelidlist, BigInteger.valueOf(start), BigInteger.valueOf(end)); + if (StrUtil.isEmpty(search)) { + PageUtils.SetPage(pageindex, pagesize); + list = terminalPhotoDao.selectPhotoListByTermList(termidlist, channelidlist, BigInteger.valueOf(start), BigInteger.valueOf(end)); + + } else { + dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(null, null, null, null, search, CommonStatus.EFFECTIVE.value()); + if (CollectionUtil.isEmpty(dtos)) { + list = new ArrayList<>(); + } else { + for (DyAndLineAndTowerAndTermDto item1 : dtos) { + for (LineAndTowerAndTermDto item2 : item1.getList()) { + for (TowerAndTermDto item3 : item2.getList()) { + for (Terminals item4 : item3.getList()) { + termidlist.add(item4.getId()); + } + } + } + } + PageUtils.SetPage(pageindex, pagesize); + list = terminalPhotoDao.selectPhotoListByTermList(termidlist, channelidlist, BigInteger.valueOf(start), BigInteger.valueOf(end)); + } + } + } else { if (lineid == null || lineid.intValue() == -1) { - dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(dyid, null, null, null, null, CommonStatus.EFFECTIVE.value()); + dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(dyid, null, null, null, search, CommonStatus.EFFECTIVE.value()); } else { - if (towerid == null || towerid.intValue() == -1) { - dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(dyid, lineid, null, null, null, CommonStatus.EFFECTIVE.value()); + if (towerid == null || towerid.intValue() == -1) { + dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(dyid, lineid, null, null, search, CommonStatus.EFFECTIVE.value()); } else { if (termid == null || termid.intValue() == -1) { - dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(dyid, lineid, towerid, null, null, CommonStatus.EFFECTIVE.value()); + dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(dyid, lineid, towerid, null, search, CommonStatus.EFFECTIVE.value()); } else { - dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(dyid, lineid, towerid, termid, null, CommonStatus.EFFECTIVE.value()); + dtos = dyLevelDao.selectDyAndLineAndTowerAnTermList(dyid, lineid, towerid, termid, search, CommonStatus.EFFECTIVE.value()); } } } - for (DyAndLineAndTowerAndTermDto item1 : dtos) { - for (LineAndTowerAndTermDto item2 : item1.getList()) { - for (TowerAndTermDto item3 : item2.getList()) { - for (Terminals item4 : item3.getList()) { - termidlist.add(item4.getId()); + if (CollectionUtil.isEmpty(dtos)) { + list = new ArrayList<>(); + } else { + for (DyAndLineAndTowerAndTermDto item1 : dtos) { + for (LineAndTowerAndTermDto item2 : item1.getList()) { + for (TowerAndTermDto item3 : item2.getList()) { + for (Terminals item4 : item3.getList()) { + termidlist.add(item4.getId()); + } } } } - } - if (channelid == null || channelid.intValue() == -1) { + if (channelid == null || channelid.intValue() == -1) { - } else { - channelidlist.add(channelid); - } - if (termidlist.size() == 0) { + } else { + channelidlist.add(channelid); + } + if (termidlist.size() == 0) { - } else { - PageUtils.SetPage(pageindex, pagesize); - list = terminalPhotoDao.selectPhotoListByTermList(termidlist, channelidlist, BigInteger.valueOf(start), BigInteger.valueOf(end)); + } else { + PageUtils.SetPage(pageindex, pagesize); + list = terminalPhotoDao.selectPhotoListByTermList(termidlist, channelidlist, BigInteger.valueOf(start), BigInteger.valueOf(end)); + } } } @@ -222,9 +254,10 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { } else { Map terminalMap = cacheService.getTerminalMap(); Map lineMap = cacheService.getLineMap(); + Map towerMap = cacheService.getTowerMap(); Map termchannelMap = cacheService.getTermChannelMap(); Map termchannelMapMap = cacheService.getTermChannelMapMap(); - beans = TerminalUtils.fdsa(requestIp, list, terminalMap, lineMap, termchannelMap, termchannelMapMap); + beans = TerminalUtils.fdsa(requestIp, list, terminalMap, lineMap, towerMap, termchannelMap, termchannelMapMap); model.setList(beans); } } @@ -441,9 +474,10 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { int pagesize = vo.getPagesize(); PageUtils.SetPage(pageindex, pagesize); - DateTime dateTime = MyDateUtils.offsetDay(new Date(), -1); - long l = MyDateUtils.TimeMillSecond2Second(dateTime); - List list = terminalChannelMapperDao.selectAllByPhotoTime(BigInteger.valueOf(l)); +// DateTime dateTime = MyDateUtils.offsetDay(new Date(), -1); +// long l = MyDateUtils.TimeMillSecond2Second(dateTime); +// List list = terminalChannelMapperDao.selectAllByPhotoTime(BigInteger.valueOf(l)); + List list = terminalChannelMapperDao.selectAllByPhotoTime(CommonStatus.EFFECTIVE.value()); ArrayList photolist = new ArrayList<>(); List beans = new ArrayList<>(); if (CollectionUtil.isNotEmpty(list)) { @@ -456,9 +490,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { Map termchannelMap = cacheService.getTermChannelMap(); Map towerMap = cacheService.getTowerMap(); List photoList = terminalPhotoDao.selectPhotosByIdList(photolist); - beans = TerminalUtils.setPhotoList(requestIp, list, lineMap, termchannelMapMap, terminalMap, termchannelMap, towerMap, photoList); - } model.setList(beans); PageInfo pageData = PageUtils.getPageData(list); @@ -517,39 +549,6 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { return Asserts.success(model); } - @Override - public ServiceBody selectPhotoTime(TerminalReqPhotoTimeVo vo) { - String result = requestResultsDao.getRequestResult(vo.getRequestId());//待修改 - TerminalScheduleRuleTimeListModel model = new TerminalScheduleRuleTimeListModel(); - if (StringUtils.isNotBlank(result)) { - JSONObject resultObj = JSONObject.parseObject(result); - if (null != resultObj.get("groupData")) { - List resultDtoList = JSONArray.parseArray(resultObj.get("groupData").toString(), PhotoTimeResultDto.class); - if (CollectionUtil.isNotEmpty(resultDtoList)) { - List resultList = Lists.newArrayList(); - String startTimeStr = resultDtoList.get(0).getHour() + ":" + resultDtoList.get(0).getMinute() + ":00"; - String endTimeStr = resultDtoList.get(1).getHour() + ":" + resultDtoList.get(1).getMinute() + ":00"; - Date startTime = DateUtil.parseTime(startTimeStr); - Date endTime = DateUtil.parseTime(endTimeStr); - Integer span = resultDtoList.get(2).getHour() * 60 + resultDtoList.get(2).getMinute(); - List dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span); - for (DateTime data : dateTimes) { - String dateTime = DateUtil.formatTime(data); - resultList.add(dateTime); - } - model.setList(resultList); - model.setIsNew(true); - } - } - } else { - TerminalAndChannelIdVo idVo = new TerminalAndChannelIdVo(); - BeanUtils.copyProperties(vo, idVo); - ServiceBody listModel = terminalScheduleRuleService.getChannelSchelduleRule(idVo); - model = listModel.getData(); - } - return Asserts.success(model); - } - @Override public ServiceBody selectPhotoTimeGet(TerminalPhotoTimeGetVo vo) { GetModel model = new GetModel(); @@ -583,9 +582,10 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { } else { Map terminalMap = cacheService.getTerminalMap(); Map lineMap = cacheService.getLineMap(); + Map towerMap = cacheService.getTowerMap(); Map termchannelMap = cacheService.getTermChannelMap(); Map termchannelMapMap = cacheService.getTermChannelMapMap(); - beans = TerminalUtils.fdsa(requestIp, list, terminalMap, lineMap, termchannelMap, termchannelMapMap); + beans = TerminalUtils.fdsa(requestIp, list, terminalMap, lineMap, towerMap, termchannelMap, termchannelMapMap); model.setList(beans); } PageInfo pageData = PageUtils.getPageData(list); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java index 570c022..8de1e99 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java @@ -2,9 +2,7 @@ package com.shxy.xymanager_service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.date.DateField; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageInfo; @@ -24,6 +22,7 @@ import com.shxy.xymanager_common.util.xinyin.ProcessExecUtils; import com.shxy.xymanager_common.util.xinyin.ScheduleListUtils; import com.shxy.xymanager_common.vo.*; import com.shxy.xymanager_dao.dao.*; +import com.shxy.xymanager_service.service.CacheService; import com.shxy.xymanager_service.service.TerminalScheduleRuleService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -31,9 +30,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.*; /** * 时间任务实现层 @@ -63,13 +62,15 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ @Autowired TerminalScheduleDetailsDao terminalScheduleDetailsDao; + @Autowired + CacheService cacheService; + @Value("${cma.clientid}") public int clientid; @Value("${cma.scheduletype}") public int scheduletype; - /** * 获取时间任务规则列表 * @@ -100,7 +101,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ } model.setList(beans); } - PageInfo pageData = PageUtils.getPageData(list); + PageInfo pageData = PageUtils.getPageData(schedules); int currentpage = pageData.getPageNum(); model.setCurrentpage(currentpage); long total = pageData.getTotal(); @@ -182,6 +183,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ } Date date = new Date(); Schedules schedule = new Schedules(); + schedule.setId(scheduleid); schedule.setName(vo.getName()); schedule.setRemark(vo.getRemark()); schedule.setUpdateTime(date); @@ -236,54 +238,72 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ return Asserts.error("没有该装置"); } - ScheduleAndRuleDto dto = schedulesDao.selectSingleScheduleAndDetailsList(scheduleid, CommonStatus.EFFECTIVE.value()); - if (BeanUtil.isEmpty(dto)) { - return Asserts.error("没有该拍照时间规则"); - } - List dtoList = dto.getList(); - if (CollectionUtil.isEmpty(dtoList)) { - return Asserts.error("没有该拍照时间规则"); - } +// ScheduleAndRuleDto dto = schedulesDao.selectSingleScheduleAndDetailsList(scheduleid, CommonStatus.EFFECTIVE.value()); +// if (BeanUtil.isEmpty(dto)) { +// return Asserts.error("没有该拍照时间规则"); +// } +// List dtoList = dto.getList(); +// if (CollectionUtil.isEmpty(dtoList)) { +// return Asserts.error("没有该拍照时间规则"); +// } + Map terminalMap = cacheService.getTerminalMap(); ArrayList requestIdList = new ArrayList<>(); - for (int x = 0; x < terminalsList.size(); x++) { - ChannelAndTermDto channelAndTermDto = terminalsList.get(x); - int requestId = Constants.REQUEST_ID.addAndGet(1); - int offset = 0; - for (int i = 0; i < termlist.size(); i++) { - if (channelAndTermDto.getTermid().intValue() == termlist.get(i).getTermid().intValue()) { - offset = termlist.get(i).getOffset(); - } + for (int i = 0; i < termlist.size(); i++) { + ArrayList templist = new ArrayList<>(); + String cmdid = null; + RelateTerminalListRuleIdVo.Items items = termlist.get(i); + Integer termid = items.getTermid(); + Integer channelid = items.getChannelid(); + Integer offset = items.getOffset(); + if (terminalMap != null && termid != null) { + Terminals terminals = terminalMap.get(termid); + cmdid = terminals.getCmdid(); } - String timestr = ScheduleListUtils.relateTime(dtoList, offset); - - String cmd = CmaUtil.relateSchelduleRule(dtoList, channelAndTermDto.getCmdid(), requestId, channelAndTermDto.getChannelid(), timestr); - ProcessExecUtils.exec(cmd); + if (StrUtil.isEmpty(cmdid)) { + continue; + } + List timelist = items.getList(); + if (CollectionUtil.isEmpty(timelist)) { + continue; + } + String timestr = ScheduleListUtils.relateTime(timelist); + int requestId = Constants.REQUEST_ID.addAndGet(1); - log.info("cma下发时间表命令", cmd); GetScheduleRequestIdListModel.RequestBean requestBean = new GetScheduleRequestIdListModel.RequestBean(); - requestBean.setTermid(channelAndTermDto.getTermid()); - requestBean.setChannelid(channelAndTermDto.getChannelid()); + requestBean.setTermid(termid); + requestBean.setChannelid(channelid); requestBean.setRequestid(requestId); requestIdList.add(requestBean); - - Date date = new Date(); - TerminalSchedulesTemp temp = new TerminalSchedulesTemp(); - temp.setTermId(channelAndTermDto.getTermid()); - temp.setChannelId(channelAndTermDto.getChannelid()); - temp.setScheduleId(scheduleid); - temp.setRequestId(requestId); - temp.setStatus(CommonStatus.DELETE.value()); - temp.setOffset(offset); - temp.setCreateTime(date); - temp.setUpdateTime(date); - terminalSchedulesTempDao.insertSelective(temp); + for (int j = 0; j < timelist.size(); j++) { + ScheduleRuleVo scheduleRuleVo = timelist.get(j); + Integer hour = scheduleRuleVo.getHour(); + Integer minute = scheduleRuleVo.getMinute(); + Integer preset = scheduleRuleVo.getPreset(); + TerminalSchedulesTemp temp = new TerminalSchedulesTemp(); + temp.setTermId(termid); + temp.setChannelId(channelid); + temp.setScheduleId(scheduleid); + temp.setRequestId(requestId); + temp.setHour(hour); + temp.setMinute(minute); + temp.setPreset(preset); + temp.setOffset(offset); + templist.add(temp); + } + if (CollectionUtil.isNotEmpty(templist)) { + terminalSchedulesTempDao.deleteByTermidAndChannelid(templist); + Date date = new Date(); + terminalSchedulesTempDao.insertList(templist, CommonStatus.DELETE.value(), date, date); + String cmd = CmaUtil.relateSchelduleRule(timelist, cmdid, requestId, channelid, timestr); + ProcessExecUtils.exec(cmd); + log.info("cma下发时间表命令", cmd); + } } model.setList(requestIdList); return Asserts.success(model); } - /** * 查询拍照时间表任务是否下发成功 * @@ -322,16 +342,19 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ model.setList(modellist); return Asserts.success(model); } else { + HashMap map = new HashMap<>(); + for (TerminalSchedulesTemp item : resultsList) { + map.put(item.getRequestId(), CommonStatus.EFFECTIVE.value()); + } for (RequestIdListVo.RequestBean it : list) { ScheduleRequestIdListModel.RequestStatusBean requestBean = new ScheduleRequestIdListModel.RequestStatusBean(); requestBean.setRequestid(it.getRequestid()); requestBean.setChannelid(it.getChannelid()); requestBean.setTermid(it.getTermid()); - requestBean.setStatus(CommonStatus.DELETE.value()); - for (int i = 0; i < resultsList.size(); i++) { - if (it.getRequestid().intValue() == requestidlist.get(i).intValue()) { - requestBean.setStatus(CommonStatus.EFFECTIVE.value()); - } + if (map.get(it.getRequestid()) != null) { + requestBean.setStatus(CommonStatus.EFFECTIVE.value()); + } else { + requestBean.setStatus(CommonStatus.DELETE.value()); } modellist.add(requestBean); } @@ -350,7 +373,9 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ @Override public ServiceBody getChannelSchelduleRule(TerminalAndChannelIdVo vo) { TerminalScheduleRuleTimeListModel model = new TerminalScheduleRuleTimeListModel(); - TerminalSchedule mapper = terminalScheduleDao.selectByChannelId(vo.getChannelid(), vo.getTerminalid()); + Integer channelid = vo.getChannelid(); + Integer terminalid = vo.getTerminalid(); + TerminalSchedule mapper = terminalScheduleDao.selectByChannelId(channelid, terminalid); if (BeanUtil.isEmpty(mapper)) { model.setList(new ArrayList<>()); return Asserts.success(model); @@ -363,38 +388,22 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ if (mapper == null) { model.setList(new ArrayList<>()); } else { - Integer scheduleId = mapper.getScheduleId(); - ScheduleAndRuleDto bean = schedulesDao.selectSingleScheduleAndDetailsList(scheduleId, CommonStatus.EFFECTIVE.value()); - if (BeanUtil.isEmpty(bean)) { + List list = terminalScheduleDetailsDao.selectByTermidAndChannelid(terminalid, channelid); + if (CollectionUtil.isEmpty(list)) { model.setList(new ArrayList<>()); } else { - List list = bean.getList(); - if (CollectionUtil.isEmpty(list)) { - model.setList(new ArrayList<>()); - } else { - ArrayList detailsBeans = ScheduleListUtils.getScheduleDetailsBeans(list); - ArrayList timestrlist = new ArrayList<>(); - for (TerminalScheduleRuleModel.ScheduleRuleBean item : detailsBeans) { - DateTime startTime = MyDateUtils.offsetMinute(item.getStartTime(), offset); - if (startTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getStartTime()))) { - startTime = MyDateUtils.endOfDay(item.getStartTime()); - } - DateTime endTime = MyDateUtils.offsetMinute(item.getEndTime(), offset); - if (endTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getEndTime()))) { - endTime = MyDateUtils.endOfDay(item.getEndTime()); - } - -// Time startTime = item.getStartTime(); -// Time endTime = item.getEndTime(); - Integer span = item.getSpan(); - List dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span); - for (DateTime data : dateTimes) { - String dateTime = DateUtil.formatTime(data); - timestrlist.add(dateTime); - } - } - model.setList(timestrlist); + ArrayList timestrlist = new ArrayList<>(); + for (TerminalScheduleDetails item : list) { + TerminalScheduleRuleTimeListModel.ScheduleRuleBean scheduleRuleBean = new TerminalScheduleRuleTimeListModel.ScheduleRuleBean(); + Integer hour = item.getHour(); + Integer minute = item.getMinute(); + Integer preset = item.getPreset(); + scheduleRuleBean.setHour(hour); + scheduleRuleBean.setMinute(minute); + scheduleRuleBean.setPreset(preset); + timestrlist.add(scheduleRuleBean); } + model.setList(timestrlist); } } return Asserts.success(model); @@ -427,9 +436,19 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ if (StringUtils.isNotBlank(resultsData)) { JSONObject resultObj = JSONObject.parseObject(resultsData); if (null != resultObj.get("groupData")) { + ArrayList list = new ArrayList<>(); List resultDtoList = JSONArray.parseArray(resultObj.get("groupData").toString(), PhotoTimeResultDto.class); - List resultDetails = ScheduleListUtils.getResultDetails(resultDtoList); - model.setList(resultDetails); + if (CollectionUtil.isNotEmpty(resultDtoList)) { + for (int j = 0; j < resultDtoList.size(); j++) { + PhotoTimeResultDto item = resultDtoList.get(j); + TerminalScheduleRuleTimeListModel.ScheduleRuleBean bean = new TerminalScheduleRuleTimeListModel.ScheduleRuleBean(); + bean.setHour(item.getHour()); + bean.setMinute(item.getMinute()); + bean.setPreset(item.getPreset()); + list.add(bean); + } + } + model.setList(list); model.setIsNew(true); } } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java index 5f6749e..1b1d431 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java @@ -10,9 +10,7 @@ import com.github.pagehelper.PageInfo; import com.shxy.xymanager_common.bean.ServiceBody; import com.shxy.xymanager_common.constant.Constants; import com.shxy.xymanager_common.dto.*; -import com.shxy.xymanager_common.entity.TerminalChannelMapper; -import com.shxy.xymanager_common.entity.TerminalStatus; -import com.shxy.xymanager_common.entity.Terminals; +import com.shxy.xymanager_common.entity.*; import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.enums.GloableParamsType; import com.shxy.xymanager_common.excelbean.TerminalAndLastPicListExcelModel; @@ -85,11 +83,15 @@ public class TerminalServiceImpl implements TerminalService { @Override public ServiceBody getTerminalList(TerminalSelectVo vo) { Map towerMap = cacheService.getTowerMap(); + Map lineMap = cacheService.getLineMap(); Map termAndChannelMap = cacheService.getTermAndChannelMap(); +// Map protocolMap = cacheService.getProtocolMap(); Integer dyid = vo.getDyId(); Integer lineid = vo.getLineId(); Integer tower = vo.getTowerId(); String search = vo.getSearch(); + Integer isonline = vo.getIsonline(); + BigInteger time = TerminalUtils.generateOnlineTime(); if (StrUtil.isEmpty(search)) { search = null; } @@ -97,7 +99,7 @@ public class TerminalServiceImpl implements TerminalService { int pageindex = vo.getPageindex(); int pagesize = vo.getPagesize(); PageUtils.SetPage(pageindex, pagesize); - List list2 = terminalsDao.selectTermAndStatusList(null, dyid, lineid, tower, search); + List list2 = terminalsDao.selectTermAndStatusList(null, dyid, lineid, tower, search, isonline, time); boolean empty = CollectionUtil.isEmpty(list2); if (empty) { model.setList(new ArrayList<>()); @@ -113,9 +115,37 @@ public class TerminalServiceImpl implements TerminalService { TowerDto towerDto = towerMap.get(towerid); if (BeanUtil.isNotEmpty(towerDto)) { terminalsBean.setTowerName(towerDto.getName()); - terminalsBean.setLineId(towerDto.getLineId()); - terminalsBean.setLineName(towerDto.getLineName()); + terminalsBean.setOrder(towerDto.getOrder()); + terminalsBean.setAddress(towerDto.getAddress()); + Integer lineId = towerDto.getLineId(); + terminalsBean.setLineId(lineId); +// terminalsBean.setLineName(towerDto.getLineName()); +// terminalsBean.setLineBsManufacturer(item.getLineBsManufacturer()); + if (BeanUtil.isNotEmpty(lineMap)) { + LineAndDyNameDto lineAndDyNameDto = lineMap.get(lineId); + if (BeanUtil.isNotEmpty(lineAndDyNameDto)) { + terminalsBean.setLineName(lineAndDyNameDto.getName()); + terminalsBean.setLineBsManufacturer(lineAndDyNameDto.getBsManufacturer()); + terminalsBean.setDyId(lineAndDyNameDto.getDyLevelId()); + terminalsBean.setDyName(lineAndDyNameDto.getDyLevelName()); + } + } } + +// if (protocolMap != null) { +// Integer protocol = item.getProtocol(); +// if (protocol != null) { +// terminalsBean.setProtocol(protocol); +// Protocols protocols = protocolMap.get(protocol); +// if (protocols != null) { +// terminalsBean.setProtocolName(protocols.getName()); +// } +// } +// } +// terminalsBean.setSim(item.getSim()); +// terminalsBean.setWorkingDate(item.getWorkingDate()); +// terminalsBean.setNetType(item.getNetType()); + terminalsBean.setCmdId(item.getCmdid()); terminalsBean.setOrgId(item.getOrgId()); terminalsBean.setEquipName(item.getEquipName()); @@ -577,7 +607,7 @@ public class TerminalServiceImpl implements TerminalService { * @return */ @Override - public ServiceBody> getOnlineTerminalList() { + public ServiceBody> getOnlineTerminalList(Integer type) { List modellist = new ArrayList<>(); Map towerMap = cacheService.getTowerMap(); List list = terminalsDao.selectTermAndStatusAndLastPicList(CommonStatus.EFFECTIVE.value()); @@ -603,6 +633,12 @@ public class TerminalServiceImpl implements TerminalService { String s = MyDateUtils.TimeSecondToDate(lastheartbeat); model.setHearttime(s); } + Double latitude = item.getLatitude(); + model.setLatitude(latitude); + Double longitude = item.getLongitude(); + model.setLongitude(longitude); + Integer radius = item.getRadius(); + model.setRadius(radius); boolean b = TerminalUtils.judgeTerminalStatus(lastheartbeat); if (b) { model.setIsonline("是"); @@ -627,8 +663,19 @@ public class TerminalServiceImpl implements TerminalService { model.setPictime(s); } } + if (type == null || type == -1) { + modellist.add(model); + } else if (type == 0) { + if (!b) { + modellist.add(model); + } + } else if (type == 1) { + if (b) { + modellist.add(model); + } + } } - modellist.add(model); + } } return Asserts.success(modellist); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/DyLevelService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/DyLevelService.java index 064e87c..fccc8b8 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/DyLevelService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/DyLevelService.java @@ -20,7 +20,7 @@ public interface DyLevelService { * * @return */ - ServiceBody getdyTreeList(); + ServiceBody getdyTreeList(Integer type); /** diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java index 93448e2..9a592c6 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java @@ -75,7 +75,6 @@ public interface TerminalPhotoService { ServiceBody getLastedPhotoQueryParam(ReturnedPhotoParamsVo vo); - ServiceBody selectPhotoTime(TerminalReqPhotoTimeVo vo); ServiceBody selectPhotoTimeGet(TerminalPhotoTimeGetVo vo); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java index 6a20b18..a50357a 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java @@ -128,6 +128,6 @@ public interface TerminalService { * 获取装置在线列表 * @return */ - ServiceBody> getOnlineTerminalList(); + ServiceBody> getOnlineTerminalList(Integer type); }