ChargeServiceImpl.java 8.6 KB

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