Browse Source

1、添加新的模板消息

dev
mh 4 months ago
parent
commit
21147f661a
  1. 78
      user-service/src/main/java/com/mh/user/job/PushDataToWechatJob.java
  2. 19
      user-service/src/main/java/com/mh/user/mapper/EnergyDataMapper.java
  3. 2
      user-service/src/main/java/com/mh/user/mapper/wechat/WechatMapper.java
  4. 2
      user-service/src/main/java/com/mh/user/service/EnergyDataService.java
  5. 5
      user-service/src/main/java/com/mh/user/service/impl/EnergyDataServiceImpl.java
  6. 15
      user-service/src/main/java/com/mh/user/service/wechat/impl/WechatServiceImpl.java

78
user-service/src/main/java/com/mh/user/job/PushDataToWechatJob.java

@ -12,6 +12,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar; import java.util.Calendar;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -54,9 +60,75 @@ public class PushDataToWechatJob {
} else { } else {
log.info("有数据"); log.info("有数据");
// 开始推送数据 // 开始推送数据
PushMsgEntity pushMsgEntity = new PushMsgEntity();
List<Map<String, Object>> wechatUserList = wechatService.queryWechatUser(String.valueOf(projectInfoEntity.getId())); List<Map<String, Object>> wechatUserList = wechatService.queryWechatUser(String.valueOf(projectInfoEntity.getId()));
for (Map<String, Object> map : wechatUserList) { for (Map<String, Object> map : wechatUserList) {
PushMsgEntity pushMsgEntity = new PushMsgEntity();
// 判断模板id种类
switch (map.get("template_id").toString()) {
case "qG3Odr74o4BRx8QigZuoiguLNSkw7QJ0zQI3LaHtMY8":
// 推送单种设备消息
pushClParams(projectInfoEntity, map, pushMsgEntity, energyDataEntity, curDate);
break;
case "qG3Odr74o4BRx8QigZuoil3l3ZC2aAdDeO49robRLC8":
// 推送用电量、用冷量、EER数据
pushAllParams(projectInfoEntity, map, pushMsgEntity, energyDataEntity);
break;
default:
break;
}
wechatService.PushMsg(pushMsgEntity);
}
}
}
}
public void pushClParams(ProjectInfoEntity projectInfoEntity, Map<String, Object> map, PushMsgEntity pushMsgEntity, EnergyDataEntity energyDataEntity, String curDate) {
pushMsgEntity.setTouser(map.get("open_id").toString());
pushMsgEntity.setTemplateId(map.get("template_id").toString());
pushMsgEntity.setUrl("http://jnd2.mhwsh.net:8765/");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate today = LocalDate.parse(curDate, formatter);
First first = new First();
first.setValue("设备用量采集结果通知");
pushMsgEntity.setFirst(first);
Key1 key1 = new Key1();
key1.setValue(projectInfoEntity.getProjectName());
pushMsgEntity.setKey1(key1);
Key2 key2 = new Key2();
// 昨日用量
key2.setValue(String.valueOf(energyDataEntity.getCl()) + " kwh");
pushMsgEntity.setKey2(key2);
Key3 key3 = new Key3();
// 本周用量
// 获取本周的开始日期(周一)
LocalDate startOfWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
// 获取本周的结束日期(周日)
LocalDate endOfWeek = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
List<EnergyDataEntity> energyDataEntities = energyDataService.queryEnergyDataByDateRange(String.valueOf(startOfWeek), String.valueOf(endOfWeek), String.valueOf(projectInfoEntity.getId()));
// 求和
double sum = energyDataEntities.stream().mapToDouble(EnergyDataEntity::getCl).sum();
key3.setValue(new BigDecimal(sum).setScale(2, RoundingMode.HALF_UP) + " kwh");
pushMsgEntity.setKey3(key3);
Key4 key4 = new Key4();
// 本月用量
// 获取当月的开始日期(1号)
LocalDate startOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
// 获取当月的结束日期(该月的最后一天)
LocalDate endOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
List<EnergyDataEntity> monDatas = energyDataService.queryEnergyDataByDateRange(String.valueOf(startOfMonth), String.valueOf(endOfMonth), String.valueOf(projectInfoEntity.getId()));
// 求和
double monthSum = monDatas.stream().mapToDouble(EnergyDataEntity::getCl).sum();
key4.setValue(new BigDecimal(monthSum).setScale(2, RoundingMode.HALF_UP) + " kwh");
pushMsgEntity.setKey4(key4);
Key5 key5 = new Key5();
key5.setValue(String.valueOf(energyDataEntity.getCurDate()));
pushMsgEntity.setKey5(key5);
}
private static void pushAllParams(ProjectInfoEntity projectInfoEntity, Map<String, Object> map, PushMsgEntity pushMsgEntity, EnergyDataEntity energyDataEntity) {
pushMsgEntity.setTouser(map.get("open_id").toString()); pushMsgEntity.setTouser(map.get("open_id").toString());
pushMsgEntity.setTemplateId(map.get("template_id").toString()); pushMsgEntity.setTemplateId(map.get("template_id").toString());
pushMsgEntity.setUrl("http://jnd2.mhwsh.net:8765/"); pushMsgEntity.setUrl("http://jnd2.mhwsh.net:8765/");
@ -78,10 +150,6 @@ public class PushDataToWechatJob {
Key5 key5 = new Key5(); Key5 key5 = new Key5();
key5.setValue(String.valueOf(energyDataEntity.getCurDate())); key5.setValue(String.valueOf(energyDataEntity.getCurDate()));
pushMsgEntity.setKey5(key5); pushMsgEntity.setKey5(key5);
wechatService.PushMsg(pushMsgEntity);
}
}
}
} }
} }

19
user-service/src/main/java/com/mh/user/mapper/EnergyDataMapper.java

@ -159,4 +159,23 @@ public interface EnergyDataMapper extends BaseMapper<EnergyDataEntity> {
}) })
EnergyDataEntity queryEnergyDataByDate(@Param("curDate") String curDate, EnergyDataEntity queryEnergyDataByDate(@Param("curDate") String curDate,
@Param("projectId") String projectId); @Param("projectId") String projectId);
@Select("select edd.*,pi.project_name from energy_data_day edd " +
" left join project_info pi on edd.project_id = pi.id " +
" where cur_date >= #{startDate} and cur_date <= #{curDate} and project_id = #{projectId} ")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "curDate", column = "cur_date"),
@Result(property = "ambTemp", column = "amb_temp"),
@Result(property = "humidity", column = "humidity"),
@Result(property = "water", column = "water"),
@Result(property = "elect", column = "elect"),
@Result(property = "cl", column = "cl"),
@Result(property = "cop", column = "cop"),
@Result(property = "projectId", column = "project_id"),
@Result(property = "projectName", column = "project_name")
})
List<EnergyDataEntity> queryEnergyDataByDateRange(@Param("startDate") String startDate,
@Param("curDate") String curDate,
@Param("projectId") String projectId);
} }

2
user-service/src/main/java/com/mh/user/mapper/wechat/WechatMapper.java

@ -20,6 +20,6 @@ public interface WechatMapper {
@Select("select wt.template_id, wui.open_id from wechat_template_project wtp " + @Select("select wt.template_id, wui.open_id from wechat_template_project wtp " +
" join wechat_template wt on wtp.template_id = wt.id " + " join wechat_template wt on wtp.template_id = wt.id " +
" join wechat_user_info wui on wtp.wechat_user_id = wui.id" + " join wechat_user_info wui on wtp.wechat_user_id = wui.id" +
" where wtp.project_id = #{projectId} ") " where wtp.project_id = #{projectId} and wui.is_status = 1 ")
List<Map<String, Object>> queryWechatUser(@Param("projectId") String projectId); List<Map<String, Object>> queryWechatUser(@Param("projectId") String projectId);
} }

2
user-service/src/main/java/com/mh/user/service/EnergyDataService.java

@ -16,4 +16,6 @@ public interface EnergyDataService {
PageResult queryYoyEnergyData(EnergyModel energyModel); PageResult queryYoyEnergyData(EnergyModel energyModel);
EnergyDataEntity queryEnergyDataByDate(String curDate, String projectId); EnergyDataEntity queryEnergyDataByDate(String curDate, String projectId);
List<EnergyDataEntity> queryEnergyDataByDateRange(String startDate, String curDate, String projectId);
} }

5
user-service/src/main/java/com/mh/user/service/impl/EnergyDataServiceImpl.java

@ -342,4 +342,9 @@ public class EnergyDataServiceImpl implements EnergyDataService {
public EnergyDataEntity queryEnergyDataByDate(String curDate, String projectId) { public EnergyDataEntity queryEnergyDataByDate(String curDate, String projectId) {
return energyDataMapper.queryEnergyDataByDate(curDate, projectId); return energyDataMapper.queryEnergyDataByDate(curDate, projectId);
} }
@Override
public List<EnergyDataEntity> queryEnergyDataByDateRange(String startDate, String curDate, String projectId) {
return energyDataMapper.queryEnergyDataByDateRange(startDate, curDate, projectId);
}
} }

15
user-service/src/main/java/com/mh/user/service/wechat/impl/WechatServiceImpl.java

@ -91,9 +91,24 @@ public class WechatServiceImpl implements WechatService {
JSONObject data = new JSONObject(); JSONObject data = new JSONObject();
data.put("first",pushMsgEntity.getFirst()); data.put("first",pushMsgEntity.getFirst());
data.put("thing1",pushMsgEntity.getKey1()); data.put("thing1",pushMsgEntity.getKey1());
// 判断模板id属于哪一个,切换对应的参数
switch (pushMsgEntity.getTemplateId()) {
case "qG3Odr74o4BRx8QigZuoiguLNSkw7QJ0zQI3LaHtMY8":
// 推送单种设备消息
data.put("character_string7", pushMsgEntity.getKey2());
data.put("character_string8", pushMsgEntity.getKey3());
data.put("character_string9", pushMsgEntity.getKey4());
break;
case "qG3Odr74o4BRx8QigZuoil3l3ZC2aAdDeO49robRLC8":
// 推送用电量、用冷量、EER数据
data.put("character_string2", pushMsgEntity.getKey2()); data.put("character_string2", pushMsgEntity.getKey2());
data.put("character_string3", pushMsgEntity.getKey3()); data.put("character_string3", pushMsgEntity.getKey3());
data.put("character_string4", pushMsgEntity.getKey4()); data.put("character_string4", pushMsgEntity.getKey4());
break;
default:
break;
}
data.put("time5",pushMsgEntity.getKey5()); data.put("time5",pushMsgEntity.getKey5());
data.put("remark",pushMsgEntity.getRemark()); data.put("remark",pushMsgEntity.getRemark());
jsonObject.put("data",data); jsonObject.put("data",data);

Loading…
Cancel
Save