Commit ff73efdb authored by ZWT's avatar ZWT

feat(零碳): 长庆演示系统新增功能

1.能耗分析模块功能重构,新增今日/昨日/同期电量统计查询接口,添加线上接口文档并完成接口冒烟测试同时添加用例;
2.能耗分析模块功能重构,新增今日天气查询接口,添加线上接口文档并完成接口冒烟测试同时添加用例;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent f555382e
package pps.cloud.system.service.data.sys_organization; package pps.cloud.system.service.data.sys_organization;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* 组织机构
*
* @author ZWT
* @date 2024/05/21
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetSysOrganizationViewInput { public class GetSysOrganizationViewInput {
@XText("主键") @XText("主键")
private String id; private String id;
...@@ -68,172 +82,4 @@ public class GetSysOrganizationViewInput { ...@@ -68,172 +82,4 @@ public class GetSysOrganizationViewInput {
@XText("是否删除") @XText("是否删除")
private Integer isDeleted; private Integer isDeleted;
public List<String> getIds() {
return ids;
}
public void setIds(List<String> ids) {
this.ids = ids;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public String getOuCode() {
return this.ouCode;
}
public void setOuCode(String value) {
this.ouCode = value;
}
public String getOuName() {
return this.ouName;
}
public void setOuName(String value) {
this.ouName = value;
}
public String getShortName() {
return this.shortName;
}
public void setShortName(String value) {
this.shortName = value;
}
public String getOuLevel() {
return this.ouLevel;
}
public void setOuLevel(String value) {
this.ouLevel = value;
}
public String getDescription() {
return this.description;
}
public void setDescription(String value) {
this.description = value;
}
public String getCreateById() {
return this.createById;
}
public void setCreateById(String value) {
this.createById = value;
}
public String getCreateByName() {
return this.createByName;
}
public void setCreateByName(String value) {
this.createByName = value;
}
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date value) {
this.createTime = value;
}
public String getModifyById() {
return this.modifyById;
}
public void setModifyById(String value) {
this.modifyById = value;
}
public String getModifyByName() {
return this.modifyByName;
}
public void setModifyByName(String value) {
this.modifyByName = value;
}
public Date getModifyTime() {
return this.modifyTime;
}
public void setModifyTime(Date value) {
this.modifyTime = value;
}
public String getPostCode() {
return this.postCode;
}
public void setPostCode(String value) {
this.postCode = value;
}
public String getPostAddress() {
return this.postAddress;
}
public void setPostAddress(String value) {
this.postAddress = value;
}
public String getFaxNo() {
return this.faxNo;
}
public void setFaxNo(String value) {
this.faxNo = value;
}
public String getPhone() {
return this.phone;
}
public void setPhone(String value) {
this.phone = value;
}
public String getCountry() {
return this.country;
}
public void setCountry(String value) {
this.country = value;
}
public String getProvince() {
return this.province;
}
public void setProvince(String value) {
this.province = value;
}
public Integer getIsDeleted() {
return isDeleted;
}
public void setIsDeleted(Integer value) {
this.isDeleted = value;
}
} }
package pps.core.base.service;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.cloud.system.service.SysOrganizationCloudService;
import pps.cloud.system.service.data.sys_organization.GetSysOrganizationViewInput;
import pps.cloud.system.service.data.sys_organization.GetSysOrganizationViewOutput;
import pps.core.base.entity.ThirdWeatherDataEnt;
import pps.core.base.mapper.ThirdWeatherDataMapper;
import pps.core.base.service.data.third_weather_data.GetThirdWeatherDataInput;
import pps.core.base.service.data.third_weather_data.GetThirdWeatherDataOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiGet;
import java.math.BigDecimal;
/**
* 第三方天气模块
*
* @author ZWT
* @date 2024/05/21 11:19
*/
@XText("第三方天气模块")
@XService
public class ThirdWeatherDataService {
/**
* 今日天气
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult }<{@link GetThirdWeatherDataOutput }>
*/
@XText("能耗分析--今日天气")
@XApiGet
public XSingleResult<GetThirdWeatherDataOutput> todayWeather(XContext context, GetThirdWeatherDataInput input) {
GetThirdWeatherDataOutput output;
GetSysOrganizationViewOutput orgById = this.getOrgById(context, input.getOuId());
if (ObjectUtil.isNotNull(orgById) && CharSequenceUtil.equals(orgById.getOuName(), "第二采油厂")) {
ThirdWeatherDataMapper mapper = context.getBean(ThirdWeatherDataMapper.class);
ThirdWeatherDataEnt ent = mapper.selectOne(new QueryWrapper<ThirdWeatherDataEnt>()
.select("wep", "tem", "wns_100m", "dni")
.lambda()
.ge(ThirdWeatherDataEnt::getForecastTime, DateUtil.date())
.orderByAsc(ThirdWeatherDataEnt::getForecastTime)
.last("LIMIT 1")
);
output = XCopyUtils.copyNewObject(ent, GetThirdWeatherDataOutput.class);
} else {
output = GetThirdWeatherDataOutput.builder()
.wep(0)
.tem(BigDecimal.ZERO)
.wns100m(BigDecimal.ZERO)
.dni(BigDecimal.ZERO)
.build();
}
return XSingleResult.success(output);
}
/*-----------------------------------private-----------------------------------*/
/**
* 按id获取组织
*
* @param context 上下文
* @param ouId ou-id
* @return {@link GetSysOrganizationViewOutput }
*/
private GetSysOrganizationViewOutput getOrgById(XContext context, String ouId) {
SysOrganizationCloudService organizationCloudService = context.getBean(SysOrganizationCloudService.class);
XSingleResult<GetSysOrganizationViewOutput> result = organizationCloudService.getSysOrganizationById(context, GetSysOrganizationViewInput.builder()
.id(ouId)
.build());
result.throwIfFail();
return result.getResult();
}
}
package pps.core.base.service.data.third_weather_data;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText;
/**
* 第三方天气入参
*
* @author ZWT
* @date 2024/05/21 11:21
*/
@Data
public class GetThirdWeatherDataInput {
/**
* 组织机构ID
*/
@NotBlank(message = "缺少组织机构ID")
@XText("组织机构ID")
private String ouId;
}
package pps.core.base.service.data.third_weather_data;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 第三方天气
*
* @author ZWT
* @date 2024/05/21 11:20
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetThirdWeatherDataOutput {
@XText("天气现象代码")
private Integer wep;
@XText("气温 [C]")
private BigDecimal tem;
@XText("风速(地面100米)[m/s]")
private BigDecimal wns100m;
@XText("太阳直接辐射[W/m2]")
private BigDecimal dni;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment