ChargeServiceImpl.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package com.welampiot.service.impl;
  2. import com.welampiot.dao.ChargeDao;
  3. import com.welampiot.dto.ChargeDTO;
  4. import com.welampiot.service.ChargeService;
  5. import com.welampiot.vo.ChargeVO;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import java.text.ParseException;
  9. import java.text.SimpleDateFormat;
  10. import java.util.ArrayList;
  11. import java.util.Date;
  12. import java.util.List;
  13. /**
  14. * ClassName: ChargeServiceImpl
  15. * Package: com.welampiot.service.impl
  16. * Description:
  17. *
  18. * @Author: zhj_Start
  19. * @Create: 2023/4/18 - 11:16
  20. * @Version: v1.0
  21. */
  22. @Service
  23. public class ChargeServiceImpl implements ChargeService {
  24. @Autowired
  25. private ChargeDao chargeDao;
  26. @Override
  27. public ChargeVO getDevListByChargeDTO(ChargeDTO dto) {
  28. ChargeVO vo = new ChargeVO();
  29. List<ChargeDTO> devList = chargeDao.getDevListByChargeDTO(dto);
  30. List<ChargeDTO> list = new ArrayList<>();
  31. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  32. devList.forEach(chargeDTO ->{
  33. if (chargeDTO.getOnline() != null && chargeDTO.getOnline() == 1){
  34. chargeDTO.setOnline(1);
  35. }else {
  36. chargeDTO.setOnline(0);
  37. }
  38. if (chargeDTO.getStatus() != null && chargeDTO.getStatus() == 1){
  39. chargeDTO.setStatus(1);
  40. }else {
  41. chargeDTO.setAlarmStatus(0);
  42. }
  43. if (chargeDTO.getUpdateTime() != null && !chargeDTO.getUpdateTime().equals("")){
  44. Date cmdTime;
  45. try {
  46. cmdTime = simpleDateFormat.parse(chargeDTO.getUpdateTime());
  47. } catch (ParseException e) {
  48. throw new RuntimeException(e);
  49. }
  50. //判断时区,为null默认东八区
  51. long timezone = chargeDTO.getTimezone() == null ? 8 : chargeDTO.getTimezone();
  52. long l = cmdTime.getTime() + timezone * 3600 * 1000;
  53. cmdTime = new Date(l);
  54. chargeDTO.setUpdateTime(simpleDateFormat.format(cmdTime));
  55. }else {
  56. chargeDTO.setUpdateTime("");
  57. }
  58. if (chargeDTO.getStartTime() != null && !chargeDTO.getStartTime().equals("")){
  59. try {
  60. chargeDTO.setStartTime(simpleDateFormat.format(simpleDateFormat.parse(chargeDTO.getStartTime())));
  61. } catch (ParseException e) {
  62. throw new RuntimeException(e);
  63. }
  64. }else {
  65. chargeDTO.setStartTime("");
  66. }
  67. if (chargeDTO.getEndTime() != null && !chargeDTO.getEndTime().equals("")){
  68. try {
  69. chargeDTO.setEndTime(simpleDateFormat.format(simpleDateFormat.parse(chargeDTO.getEndTime())));
  70. } catch (ParseException e) {
  71. throw new RuntimeException(e);
  72. }
  73. }else {
  74. chargeDTO.setEndTime("");
  75. }
  76. if (chargeDTO.getAlarmStatus() != null && chargeDTO.getAlarmStatus() == 1){
  77. chargeDTO.setAlarmStatus(1);
  78. }else {
  79. chargeDTO.setAlarmStatus(0);
  80. }
  81. if (chargeDTO.getAlarmInfo() == null){
  82. chargeDTO.setAlarmInfo("");
  83. }
  84. if (chargeDTO.getInstallDate() != null && !chargeDTO.getInstallDate().equals("")){
  85. try {
  86. chargeDTO.setInstallDate(simpleDateFormat.format(simpleDateFormat.parse(chargeDTO.getInstallDate())));
  87. } catch (ParseException e) {
  88. throw new RuntimeException(e);
  89. }
  90. }else {
  91. chargeDTO.setInstallDate("");
  92. }
  93. if (chargeDTO.getExpirationDate() != null && !chargeDTO.getExpirationDate().equals("")){
  94. try {
  95. chargeDTO.setExpirationDate(simpleDateFormat.format(simpleDateFormat.parse(chargeDTO.getExpirationDate())));
  96. } catch (ParseException e) {
  97. throw new RuntimeException(e);
  98. }
  99. }else {
  100. chargeDTO.setExpirationDate("");
  101. }
  102. if (chargeDTO.getLampPoleName() == null) {
  103. chargeDTO.setLampPoleName("");
  104. }
  105. chargeDTO.setTotal(chargeDao.getTotalBySectionList(dto));
  106. list.add(chargeDTO);
  107. });
  108. vo.setList(list);
  109. return vo;
  110. }
  111. @Override
  112. public ChargeVO getDataByChargeDTO(ChargeDTO dto) {
  113. ChargeVO vo = new ChargeVO();
  114. vo.setTotal(chargeDao.getTotalBySectionList(dto));
  115. vo.setOnlineCount(chargeDao.getOnlineTotalBySectionList(dto));
  116. vo.setAlarmCount(chargeDao.getAlarmTotalBySectionList(dto));
  117. vo.setChargeCount(chargeDao.getChargeTotalBySectionList(dto));
  118. //充电总时长
  119. List<ChargeDTO> chargeTime = chargeDao.getChargeTimeBySectionList(dto);
  120. Integer sumTime = chargeTime.stream().mapToInt(chargeDTO -> Integer.parseInt(chargeDTO.getDuration().toString())).sum();
  121. vo.setTotalTime(sumTime);
  122. //充电总金额
  123. List<ChargeDTO> chargeMoney = chargeDao.getChargeMoneyBySectionList(dto);
  124. Double sumMoney = chargeMoney.stream().mapToDouble(chargeDTO -> Float.parseFloat(chargeDTO.getFree().toString())).sum();
  125. vo.setTotalMoney(Float.parseFloat(String.format("%.2f", sumMoney)));
  126. //充电总能耗
  127. List<ChargeDTO> chargeEnergy = chargeDao.getChargeEnergyBySectionList(dto);
  128. Double sumEnergy = chargeEnergy.stream().mapToDouble(chargeDTO -> Float.parseFloat(chargeDTO.getEquipmentElectricity().toString())).sum();
  129. vo.setTotalEng(Float.parseFloat(String.format("%.2f", sumEnergy)));
  130. return vo;
  131. }
  132. @Override
  133. public ChargeDTO getChargeInfoByLampPoleId(Integer lampPoleId) {
  134. ChargeDTO chargeDTO = chargeDao.getChargeInfoByLampPoleId(lampPoleId);
  135. if (chargeDTO != null && chargeDTO.getDuration() != null) {
  136. String duration = chargeDTO.getDuration();
  137. int workTime = Integer.parseInt(duration);
  138. int hour = workTime / 60;
  139. int min = workTime % 60;
  140. String hourStr,minStr;
  141. if (hour < 10) {
  142. hourStr = "0" + hour;
  143. } else {
  144. hourStr = hour + "";
  145. }
  146. if (min < 10) {
  147. minStr = "0" + min;
  148. } else {
  149. minStr = min + "";
  150. }
  151. duration = hourStr + ":" + minStr;
  152. chargeDTO.setDuration(duration);
  153. }
  154. return chargeDTO;
  155. }
  156. @Override
  157. public void deleteChargeById(Integer id) {
  158. chargeDao.deleteChargeById(id);
  159. }
  160. @Override
  161. public Integer getLampPoleIdByChargeId(Integer id) {
  162. return chargeDao.getLampPoleIdByChargeId(id);
  163. }
  164. @Override
  165. public Integer getChargeCountByLampPoleId(Integer lampPoleId) {
  166. return chargeDao.getChargeCountByLampPoleId(lampPoleId);
  167. }
  168. @Override
  169. public void updateLampPoleChargeData(ChargeDTO chargeDTO) {
  170. chargeDao.updateLampPoleChargeData(chargeDTO);
  171. }
  172. @Override
  173. public Integer checkChargeData(ChargeDTO chargeDTO) {
  174. return chargeDao.checkChargeData(chargeDTO);
  175. }
  176. @Override
  177. public ChargeDTO getTotalChargeEleAndFree(ChargeDTO dto) {
  178. return chargeDao.getTotalChargeEleAndFree(dto);
  179. }
  180. }