AirSwitchInfoServiceImpl.java 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package com.welampiot.service.impl;
  2. import com.welampiot.common.BaseResult;
  3. import com.welampiot.common.InterfaceResultEnum;
  4. import com.welampiot.dao.AirSwitchInfoDao;
  5. import com.welampiot.dto.AirSwitchInfoDTO;
  6. import com.welampiot.dto.ElectricModuleDTO;
  7. import com.welampiot.service.AirSwitchInfoService;
  8. import com.welampiot.service.ElectricBoxService;
  9. import com.welampiot.service.ElectricModuleService;
  10. import com.welampiot.utils.ToolUtils;
  11. import com.welampiot.vo.AirSwitchDetailVO;
  12. import com.welampiot.vo.AirSwitchInfoReturnVO;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import java.text.ParseException;
  16. import java.text.SimpleDateFormat;
  17. import java.util.ArrayList;
  18. import java.util.Date;
  19. import java.util.List;
  20. /**
  21. * ClassName: AirSwitchInfoServiceImpl
  22. * Package: com.welampiot.service.impl
  23. * Description:
  24. *
  25. * @Author: zhj_Start
  26. * @Create: 2023/3/28 - 21:27
  27. * @Version: v1.0
  28. */
  29. @Service
  30. public class AirSwitchInfoServiceImpl implements AirSwitchInfoService {
  31. @Autowired
  32. private AirSwitchInfoDao airSwitchInfoDao;
  33. @Autowired
  34. private ToolUtils toolUtils;
  35. @Autowired
  36. private ElectricModuleService electricModuleService;
  37. @Autowired
  38. private ElectricBoxService electricBoxService;
  39. @Override
  40. public AirSwitchInfoReturnVO getAirSwitchInfo(Integer boxId, Integer online) {
  41. AirSwitchInfoReturnVO airSwitchInfoReturnVO = new AirSwitchInfoReturnVO();
  42. airSwitchInfoReturnVO.setTotalDev(airSwitchInfoDao.getCountByBoxId(boxId));
  43. airSwitchInfoReturnVO.setOneDev(airSwitchInfoDao.getCountByBoxIdAndType(boxId,0));
  44. airSwitchInfoReturnVO.setThreeDev(airSwitchInfoDao.getCountByBoxIdAndType(boxId,1));
  45. airSwitchInfoReturnVO.setAlarmCount(airSwitchInfoDao.getCountByBoxIdAndAlarmStatus(boxId));
  46. airSwitchInfoReturnVO.setPolicyId(airSwitchInfoDao.getPolicyIdByBoxId(boxId));
  47. if (airSwitchInfoReturnVO.getPolicyId() != null && airSwitchInfoReturnVO.getPolicyId() != 0){
  48. airSwitchInfoReturnVO.setPolicyName(airSwitchInfoDao.getPolicyNameByPolicyId(airSwitchInfoReturnVO.getPolicyId()));
  49. }else {
  50. airSwitchInfoReturnVO.setPolicyName("");
  51. }
  52. List<AirSwitchInfoDTO> airSwitchList = airSwitchInfoDao.getAirSwitchInfoByBoxId(boxId, online);
  53. List<AirSwitchInfoDTO> airSwitchInfoDTOS = new ArrayList<>();
  54. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  55. airSwitchList.forEach(airSwitchInfoDTO -> {
  56. if (airSwitchInfoDTO.getPolicyId() == null || airSwitchInfoDTO.getPolicyId() == 0){
  57. airSwitchInfoDTO.setPolicyName("");
  58. }
  59. if (airSwitchInfoDTO.getLogTime() != null){
  60. Date cmdTime;
  61. try {
  62. cmdTime = simpleDateFormat.parse(airSwitchInfoDTO.getLogTime());
  63. } catch (ParseException e) {
  64. throw new RuntimeException(e);
  65. }
  66. //判断时区,为null默认东八区
  67. long timezone = airSwitchInfoDTO.getTimezone() == null ? 8 : airSwitchInfoDTO.getTimezone();
  68. long l = cmdTime.getTime() + timezone * 3600 * 1000;
  69. cmdTime = new Date(l);
  70. airSwitchInfoDTO.setLogTime(simpleDateFormat.format(cmdTime));
  71. }else {
  72. airSwitchInfoDTO.setLogTime("");
  73. }
  74. if (airSwitchInfoDTO.getStatus() != null && airSwitchInfoDTO.getStatus() == 1){
  75. airSwitchInfoDTO.setStatus(1);
  76. }else {
  77. airSwitchInfoDTO.setStatus(0);
  78. }
  79. if (airSwitchInfoDTO.getType() != null && airSwitchInfoDTO.getType() == 1) {
  80. airSwitchInfoDTO.setType(1);
  81. }else {
  82. airSwitchInfoDTO.setType(0);
  83. }
  84. airSwitchInfoDTOS.add(airSwitchInfoDTO);
  85. });
  86. airSwitchInfoReturnVO.setList(airSwitchInfoDTOS);
  87. return airSwitchInfoReturnVO;
  88. }
  89. @Override
  90. public AirSwitchDetailVO getAirSwitchDetail(Integer id) {
  91. AirSwitchDetailVO airSwitchDetailVO = new AirSwitchDetailVO();
  92. AirSwitchInfoDTO airSwitchInfoDTO = airSwitchInfoDao.getAirSwitchDetailById(id);
  93. if (airSwitchInfoDTO == null) return null;
  94. airSwitchDetailVO.setName(airSwitchInfoDTO.getName());
  95. airSwitchDetailVO.setAddress(airSwitchInfoDTO.getAddress());
  96. airSwitchDetailVO.setBoxId(airSwitchInfoDTO.getBoxId().toString());
  97. if (airSwitchInfoDTO.getType() != null && airSwitchInfoDTO.getType() == 1){
  98. airSwitchInfoDTO.setType(1);
  99. airSwitchDetailVO.setType(airSwitchInfoDTO.getType().toString());
  100. }else {
  101. airSwitchInfoDTO.setType(0);
  102. airSwitchDetailVO.setType(airSwitchInfoDTO.getType().toString());
  103. }
  104. return airSwitchDetailVO;
  105. }
  106. @Override
  107. public BaseResult add(AirSwitchInfoDTO dto) {
  108. ElectricModuleDTO detailsById = electricModuleService.getDetailsById(dto.getModuleId());
  109. dto.setBoxId(detailsById.getBoxId());
  110. dto.setBoxAddress(detailsById.getAddress());
  111. airSwitchInfoDao.add(dto);
  112. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,dto.getVersion());
  113. }
  114. @Override
  115. public BaseResult update(AirSwitchInfoDTO dto) {
  116. ElectricModuleDTO detailsById = electricModuleService.getDetailsById(dto.getModuleId());
  117. dto.setBoxId(detailsById.getBoxId());
  118. dto.setBoxAddress(detailsById.getAddress());
  119. airSwitchInfoDao.update(dto);
  120. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,dto.getVersion());
  121. }
  122. @Override
  123. public Integer delete(AirSwitchInfoDTO dto) {
  124. return airSwitchInfoDao.delete(dto);
  125. }
  126. @Override
  127. public Integer deleteByBoxId(Integer boxId) {
  128. return airSwitchInfoDao.deleteByBoxId(boxId);
  129. }
  130. @Override
  131. public AirSwitchInfoDTO getAirSwitchAddressById(Integer id) {
  132. return airSwitchInfoDao.getAirSwitchAddressById(id);
  133. }
  134. @Override
  135. public List<AirSwitchInfoDTO> getAirSwitchAddressByModuleId(Integer moduleId) {
  136. return airSwitchInfoDao.getAirSwitchAddressByModuleId(moduleId);
  137. }
  138. @Override
  139. public void updateAirSwitchStatusById(AirSwitchInfoDTO dto) {
  140. airSwitchInfoDao.updateAirSwitchStatusById(dto);
  141. }
  142. }