| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- package com.template.services.impl;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.template.mapper.ElectricEquipmentMapper;
- import com.template.model.pojo.ElectricEquipment;
- import com.template.services.ElectricEquipmentService;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.client.RestTemplate;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author ceshi
- * @since 2024-04-01
- */
- @Service
- public class ElectricEquipmentServiceImpl extends ServiceImpl<ElectricEquipmentMapper, ElectricEquipment> implements ElectricEquipmentService {
- /**
- * 获取所有房间的电表设备
- */
- // @Scheduled(cron = "0 23 * * * ? ")
- @Transactional(rollbackFor = Exception.class)
- public void getHouseNumberEquipment(){
- String url="http://172.16.20.87/api/wechat/main/meterQuery?meterType=1";
- RestTemplate restTemplate = new RestTemplate();
- String forObject = restTemplate.getForObject(url, String.class);
- JSONObject jsonObject = JSONObject.parseObject(forObject);
- // System.out.println("jsonObject = " + jsonObject);
- JSONArray meterObj = jsonObject.getJSONArray("meterObj");
- try {
- ArrayList<ElectricEquipment> electricEquipments = new ArrayList<>();
- for (int i = 0; i < meterObj.size(); i++) {
- JSONObject jsonObject1 = meterObj.getJSONObject(i);
- ElectricEquipment electricEquipment = new ElectricEquipment();
- electricEquipment.setMeterId(jsonObject1.getString("meterId"));
- electricEquipment.setRoomId(jsonObject1.getString("roomId"));
- electricEquipment.setRoomNum(jsonObject1.getString("roomNum"));
- electricEquipment.setMeterName(jsonObject1.getString("meterName"));
- electricEquipments.add(electricEquipment);
- // this.save(electricEquipment);
- }
- System.out.println("electricEquipments.size() = " + electricEquipments.size());
- System.out.println("meterObj.size() = " + meterObj.size());
- this.saveBatch(electricEquipments);
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- // 计算电费
- @Override
- public JSONObject roomCostRecord(String roomId,String beginTime,String endTime){
- JSONObject objectElectric = new JSONObject();
- String url="http://172.16.20.87/api/wechat/main/roomCostRecord?roomId="+roomId+"&beginTime="+beginTime+"&endTime="+endTime+"&pageNumber=1&pageSize=1000&dataType=0&costType=0";
- RestTemplate restTemplate = new RestTemplate();
- String forObject = restTemplate.getForObject(url, String.class);
- JSONObject jsonObject = JSONObject.parseObject(forObject);
- JSONArray costObj = jsonObject.getJSONArray("costObj");
- BigDecimal bigDecimalCost = new BigDecimal(0);
- BigDecimal bigDecimalConsume = new BigDecimal(0);
- if (ObjectUtils.isEmpty(costObj)&&costObj.size()<=0) {
- objectElectric.put("cost",bigDecimalCost);
- objectElectric.put("consume",bigDecimalConsume);
- return objectElectric;
- }
- for (int i = 0; i < costObj.size(); i++) {
- JSONObject jsonObject1 = costObj.getJSONObject(i);
- BigDecimal costTotal = jsonObject1.getBigDecimal("costTotal");
- BigDecimal consumeTotal = jsonObject1.getBigDecimal("consumeTotal");
- bigDecimalCost = bigDecimalCost.add(costTotal);
- bigDecimalConsume = bigDecimalConsume.add(consumeTotal);
- }
- objectElectric.put("cost",bigDecimalCost);
- objectElectric.put("consume",bigDecimalConsume);
- return objectElectric;
- }
- /**
- * 远程开电
- * @param electricEquipmentId
- * @return
- */
- @Override
- public Boolean openMeterControl(String electricEquipmentId) {
- ElectricEquipment electricEquipment = this.getById(electricEquipmentId);
- if (ObjectUtils.isEmpty(electricEquipment)) {
- return false;
- }
- String meterId = electricEquipment.getMeterId();
- String url="http://172.16.20.87/api/wechat/main/meterControl?meterId="+meterId+"&ifOpen=Y&meterType=1";
- RestTemplate restTemplate = new RestTemplate();
- String forObject = restTemplate.getForObject(url, String.class);
- JSONObject jsonObject = JSONObject.parseObject(forObject);
- JSONArray meterObj = jsonObject.getJSONArray("meterObj");
- Boolean state= false;
- for (int i = 0; i < meterObj.size(); i++) {
- JSONObject object = meterObj.getJSONObject(i);
- String meterId1 = object.getString("meterId");
- String opState = object.getString("opState");
- if ("Y".equals(opState)) {
- state=true;
- }
- }
- return state;
- }
- /**
- * 关电
- * @param electricEquipmentId
- * @return
- */
- @Override
- public Boolean closeMeterControl(String electricEquipmentId) {
- ElectricEquipment electricEquipment = this.getById(electricEquipmentId);
- if (ObjectUtils.isEmpty(electricEquipment)) {
- return false;
- }
- String meterId = electricEquipment.getMeterId();
- String url="http://172.16.20.87/api/wechat/main/meterControl?meterId="+meterId+"&ifOpen=N&meterType=1";
- RestTemplate restTemplate = new RestTemplate();
- String forObject = restTemplate.getForObject(url, String.class);
- JSONObject jsonObject = JSONObject.parseObject(forObject);
- JSONArray meterObj = jsonObject.getJSONArray("meterObj");
- Boolean state= false;
- for (int i = 0; i < meterObj.size(); i++) {
- JSONObject object = meterObj.getJSONObject(i);
- String meterId1 = object.getString("meterId");
- String opState = object.getString("opState");
- if ("Y".equals(opState)) {
- state=true;
- }
- }
- return state;
- }
- // @Scheduled(cron = "0 55 * * * ? ")
- public void test(){
- // JSONObject jsonObject = roomCostRecord("H1", "2024-04-02 08:10:10", "2024-04-03 07:00:00");
- // System.out.println("jsonObject = " + jsonObject);
- Boolean aBoolean = openMeterControl("2");
- System.out.println("aBoolean = " + aBoolean);
- }
- }
|