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 1162639..a2ccb0c 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 @@ -5,10 +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.model.TerminalListModel; -import com.shxy.xymanager_common.model.TerminalModel; -import com.shxy.xymanager_common.model.TerminalStatusGetModel; -import com.shxy.xymanager_common.model.TerminalUpdateModel; +import com.shxy.xymanager_common.model.*; import com.shxy.xymanager_common.vo.*; import com.shxy.xymanager_service.service.TerminalService; import io.swagger.annotations.Api; @@ -146,6 +143,19 @@ public class TerminalController extends BaseController { } } + @ApiOperation(value = "根据通道编号获取设备列表", notes = "根据通道编号获取设备列表", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/getTermListByChannel") + @Log(title = "获取设备列表", type = "查询") + public ResponseReult getTermListByChannel(@RequestBody @Validated TerminalChannelIdVo vo) { + ServiceBody serviceBody = terminalService.getTermListByChannel(vo); + if (serviceBody.getCode() == ServiceStatus.SUCCESS) { + return ResponseReult.success(serviceBody.getData()); + } else { + return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); + } + } + } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/DyLineAndTerminalDto.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/DyLineAndTerminalNoHeartDto.java similarity index 65% rename from xymanager_common/src/main/java/com/shxy/xymanager_common/dto/DyLineAndTerminalDto.java rename to xymanager_common/src/main/java/com/shxy/xymanager_common/dto/DyLineAndTerminalNoHeartDto.java index 955cf18..3328c0c 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/DyLineAndTerminalDto.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/DyLineAndTerminalNoHeartDto.java @@ -5,7 +5,7 @@ import lombok.Data; import java.util.List; @Data -public class DyLineAndTerminalDto { +public class DyLineAndTerminalNoHeartDto { private Integer id; @@ -13,6 +13,6 @@ public class DyLineAndTerminalDto { private Integer dyValue; - private List list; + private List list; } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/DyLineAndTerminalWithHeartDto.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/DyLineAndTerminalWithHeartDto.java new file mode 100644 index 0000000..1d43542 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/DyLineAndTerminalWithHeartDto.java @@ -0,0 +1,18 @@ +package com.shxy.xymanager_common.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class DyLineAndTerminalWithHeartDto { + + private Integer id; + + private String name; + + private Integer dyValue; + + private List list; + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalDto.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalNoHeartDto.java similarity index 87% rename from xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalDto.java rename to xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalNoHeartDto.java index 9cba2b2..f81e201 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalDto.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalNoHeartDto.java @@ -6,7 +6,7 @@ import lombok.Data; import java.util.List; @Data -public class LineAndTerminalDto { +public class LineAndTerminalNoHeartDto { private Integer id; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalWithHeartDto.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalWithHeartDto.java new file mode 100644 index 0000000..2d98a41 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/LineAndTerminalWithHeartDto.java @@ -0,0 +1,22 @@ +package com.shxy.xymanager_common.dto; + +import com.shxy.xymanager_common.entity.Terminals; +import com.shxy.xymanager_common.entity.TerminalsWithHeart; +import lombok.Data; + +import java.util.List; + +@Data +public class LineAndTerminalWithHeartDto { + + private Integer id; + + private String name; + + private String bsManufacturer; + + private Integer dyLevel; + + private List list; + +} 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 07f98c1..d7045c8 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 @@ -41,8 +41,6 @@ public class Terminals implements Serializable { private Date updateTime; - private Long lastheartbeat; - 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/TerminalsWithHeart.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalsWithHeart.java new file mode 100644 index 0000000..1ba5094 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalsWithHeart.java @@ -0,0 +1,48 @@ +package com.shxy.xymanager_common.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class TerminalsWithHeart implements Serializable { + private Integer id; + + private Integer lineid; + + private Integer towerid; + + private String cmdid; + + private Short orgId; + + private String equipName; + + private String displayName; + + private String model; + + private String essentialInfoVersion; + + private Byte hasPan; + + private String bsManufacturer; + + private Date bsProductionDate; + + private String bsIdentifier; + + private Double latitude; + + private Double longitude; + + private Date createTime; + + private Date updateTime; + + private Long lastheartbeat; + + private static final long serialVersionUID = 1L; + +} \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineAndTermModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineAndTermModel.java new file mode 100644 index 0000000..98e0874 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineAndTermModel.java @@ -0,0 +1,68 @@ +package com.shxy.xymanager_common.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 电压线路装置状图列表 + */ +@Data +@ApiModel(value = "电压线路装置状图列表", description = "电压线路装置状图列表") +public class DyLineAndTermModel implements Serializable { + + @ApiModelProperty(value = "电压列表", example = "[]") + private List list; + + @Data + public static class DyListBean { + @ApiModelProperty(value = "电压编号", example = "123456") + private Integer id; + + @ApiModelProperty(value = "电压名称", example = "AAAA") + private String name; + + @ApiModelProperty(value = "电压大小", example = "AAAA") + private Integer dyValue; + + @ApiModelProperty(value = "线路列表", example = "[]") + private List list; + } + + @Data + public static class LineBean { + + @ApiModelProperty(value = "线路编号", example = "123456") + private Integer id; + + @ApiModelProperty(value = "线路名称", example = "AAAA") + private String name; + + @ApiModelProperty(value = "单位", example = "123456") + private String bsManufacturer; + + @ApiModelProperty(value = "装置信息", example = "123456") + private List list; + + } + + @Data + public static class TerminalBean { + + @ApiModelProperty(value = "装置编号", example = "123456") + private Integer id; + + @ApiModelProperty(value = "杆塔编号", example = "123456") + private Integer towerid; + + @ApiModelProperty(value = "图像监测装置 ID(17 位编码)", example = "12345678") + private String cmdid; + + @ApiModelProperty(value = "显示名", example = "名称名称") + private String displayName; + + } +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalChannelIdVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalChannelIdVo.java new file mode 100644 index 0000000..fa15587 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalChannelIdVo.java @@ -0,0 +1,17 @@ +package com.shxy.xymanager_common.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +@ApiModel(value = "通道编号对象", description = "通道编号对象") +public class TerminalChannelIdVo { + @NotNull(message = "通道编号不能缺少") + @ApiModelProperty(value = "通道编号", example = "123") + private Integer id; +} 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 aab1ae1..a4f1977 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 @@ -1,6 +1,7 @@ package com.shxy.xymanager_dao.dao; -import com.shxy.xymanager_common.dto.DyLineAndTerminalDto; +import com.shxy.xymanager_common.dto.DyLineAndTerminalNoHeartDto; +import com.shxy.xymanager_common.dto.DyLineAndTerminalWithHeartDto; import com.shxy.xymanager_common.entity.DyLevel; import org.apache.ibatis.annotations.Param; @@ -17,7 +18,9 @@ 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); int updateByPrimaryKeySelective(DyLevel record); diff --git a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml index e64e785..238406b 100644 --- a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml +++ b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml @@ -10,11 +10,11 @@ - + - + @@ -31,6 +31,24 @@ + + + + + + + + + + + + + + + + + + id, name, dy_value, status, create_time, update_time @@ -69,6 +87,29 @@ left join terminal_status f on f.term_id = y.id) + + insert into dy_level (id, name, dy_value, status, create_time, update_time 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 be38406..3adf9ed 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 @@ -5,16 +5,15 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUnit; import com.shxy.xymanager_common.bean.ServiceBody; -import com.shxy.xymanager_common.dto.DyLineAndTerminalDto; +import com.shxy.xymanager_common.dto.DyLineAndTerminalWithHeartDto; import com.shxy.xymanager_common.entity.DyLevel; -import com.shxy.xymanager_common.entity.Lines; import com.shxy.xymanager_common.entity.Terminals; +import com.shxy.xymanager_common.entity.TerminalsWithHeart; import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.model.DyLineTreeListModel; import com.shxy.xymanager_common.model.DyListModel; import com.shxy.xymanager_common.util.MyDateUtils; -import com.shxy.xymanager_common.vo.TerminalIdVo; import com.shxy.xymanager_common.vo.TestVo; import com.shxy.xymanager_dao.dao.DyLevelDao; import com.shxy.xymanager_service.service.DyLevelService; @@ -44,7 +43,7 @@ public class DyLevelServiceImpl implements DyLevelService { @Override public ServiceBody getdyTreeList() { DyLineTreeListModel model = new DyLineTreeListModel(); - List list = dyLevelDao.selectTreeList(CommonStatus.EFFECTIVE.value()); + List list = dyLevelDao.selectTreeList(CommonStatus.EFFECTIVE.value()); boolean empty = CollectionUtil.isEmpty(list); if (empty) { model.setList(new ArrayList<>()); @@ -54,9 +53,9 @@ public class DyLevelServiceImpl implements DyLevelService { 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++) { beans.get(i).getList().get(j).getList().get(k).setName(list.get(i).getList().get(j).getList().get(k).getDisplayName()); - Terminals terminals = list.get(i).getList().get(j).getList().get(k); - if (!BeanUtil.isEmpty(terminals)) { - Long lastheartbeat = terminals.getLastheartbeat(); + TerminalsWithHeart terminalsWithHeart = list.get(i).getList().get(j).getList().get(k); + if (!BeanUtil.isEmpty(terminalsWithHeart)) { + Long lastheartbeat = terminalsWithHeart.getLastheartbeat(); if (!BeanUtil.isEmpty(lastheartbeat)) { BigInteger time = MyDateUtils.TimeSecond2MillSecond(lastheartbeat); DateTime date = MyDateUtils.date(time.longValue()); 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 2a5fd03..fa2313c 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 @@ -4,13 +4,12 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; import com.alibaba.fastjson.JSONObject; 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.PhotoParamsDto; -import com.shxy.xymanager_common.dto.TerminalInfoDto; -import com.shxy.xymanager_common.dto.TerminalsAndLineAndChannelDto; +import com.shxy.xymanager_common.dto.*; import com.shxy.xymanager_common.entity.TerminalChannelMapper; import com.shxy.xymanager_common.entity.Terminals; import com.shxy.xymanager_common.enums.CommonStatus; @@ -58,6 +57,9 @@ public class TerminalServiceImpl implements TerminalService { @Autowired TerminalPhotoDao terminalPhotoDao; + @Autowired + DyLevelDao dyLevelDao; + /** * 获取所有设备列表 * @@ -203,10 +205,10 @@ public class TerminalServiceImpl implements TerminalService { public ServiceBody getTerminalStatus(Integer termId) { TerminalStatusGetModel model = new TerminalStatusGetModel(); String cmdId = terminalsDao.getCmdIdByTermId(termId); - String cmd = "/usr/local/bin/xympadmn --server=127.0.0.1 --act=runningstatus --clientid=10 --cmdid=" + cmdId+ "\t" + "--reqid=="+Constants.REQUEST_ID; + String cmd = "/usr/local/bin/xympadmn --server=127.0.0.1 --act=runningstatus --clientid=10 --cmdid=" + cmdId + "\t" + "--reqid==" + Constants.REQUEST_ID; ProcessExecUtils.exec(cmd); - /* TerminalModel model = new TerminalModel();*/ + /* TerminalModel model = new TerminalModel();*/ model.setRequestId(Constants.REQUEST_ID.addAndGet(1)); /* TerminalInfoDto dto = terminalsDao.getTerminalInfo(termId); if (null != dto) { @@ -224,13 +226,13 @@ public class TerminalServiceImpl implements TerminalService { public ServiceBody getLastedTerminalStatus(TerminalStatusVo vo) { String result = terminalPhotoDao.getRequestResult(vo.getRequestId()); TerminalModel model = new TerminalModel(); - if(StringUtils.isNotBlank(result)) { + if (StringUtils.isNotBlank(result)) { JSONObject resultObj = JSONObject.parseObject(result); model = JSONObject.parseObject(resultObj.get("groupData").toString(), TerminalModel.class); model.setIsNew(true); - }else{ + } else { TerminalInfoDto dto = terminalsDao.getTerminalInfo(vo.getTermId()); - if(dto!=null) { + if (dto != null) { BeanUtils.copyProperties(dto, model); } model.setWsUpdateTime(MyDateUtils.TimeSecond2MillSecond(dto.getWsUpdateTime().longValue())); @@ -241,22 +243,40 @@ public class TerminalServiceImpl implements TerminalService { @Override public ServiceBody updateTerminalId(TerminalIdUpdateVo vo) { TerminalUpdateModel model = new TerminalUpdateModel(); - String cmd = "/usr/local/bin/xympadmn --server=127.0.0.1 --act=termid --cmdid="+vo.getCmdId()+"\t"+"--reqid="+ Constants.REQUEST_ID +"\t"+"--newcmdid="+vo.getNewCmdId()+"\t"+"--newcmdid="+vo.getNewCmdId(); + String cmd = "/usr/local/bin/xympadmn --server=127.0.0.1 --act=termid --cmdid=" + vo.getCmdId() + "\t" + "--reqid=" + Constants.REQUEST_ID + "\t" + "--newcmdid=" + vo.getNewCmdId() + "\t" + "--newcmdid=" + vo.getNewCmdId(); Integer retCode = ProcessExecUtils.exec(cmd); model.setRequestId(Integer.parseInt(Constants.REQUEST_ID.toString())); model.setTermId(vo.getTermId()); Constants.REQUEST_ID.addAndGet(1); - if(retCode==0){ + if (retCode == 0) { int result = terminalsDao.updateCmd(vo); - if(result>0) { + if (result > 0) { return Asserts.success(model); } } - return Asserts.error("装置ID修改失败"); + return Asserts.error("装置ID修改失败"); } - - + /** + * 根据通道编号获取装置列表 + * + * @param vo + * @return + */ + @Override + public ServiceBody getTermListByChannel(TerminalChannelIdVo vo) { + Integer id = vo.getId(); + DyLineAndTermModel model = new DyLineAndTermModel(); + List list = dyLevelDao.selectTreeListByChannelId(id,CommonStatus.EFFECTIVE.value()); + boolean empty = CollectionUtil.isEmpty(list); + if (empty) { + model.setList(new ArrayList<>()); + } else { + List beans = BeanUtil.copyToList(list, DyLineAndTermModel.DyListBean.class,CopyOptions.create().ignoreCase()); + model.setList(beans); + } + return Asserts.success(model); + } } 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 f52ee29..b0d06b7 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 @@ -1,10 +1,7 @@ package com.shxy.xymanager_service.service; import com.shxy.xymanager_common.bean.ServiceBody; -import com.shxy.xymanager_common.model.TerminalListModel; -import com.shxy.xymanager_common.model.TerminalModel; -import com.shxy.xymanager_common.model.TerminalStatusGetModel; -import com.shxy.xymanager_common.model.TerminalUpdateModel; +import com.shxy.xymanager_common.model.*; import com.shxy.xymanager_common.vo.*; /** @@ -64,5 +61,13 @@ public interface TerminalService { */ ServiceBody updateTerminalId(TerminalIdUpdateVo vo); + /** + * 根据通道编号获取设备列表 + * + * @param vo + * @return + */ + ServiceBody getTermListByChannel(TerminalChannelIdVo vo); + }