Commit 57e89594 authored by tianchao's avatar tianchao
parents bbd490c4 9e0772a7
......@@ -26,6 +26,46 @@ public class BusinessConstant {
*/
public static final String WELLHEAD = "wellhead";
/**
* 光伏发电
*/
public static final String PHOTOVOLTAIC = "gf";
/**
* 储能发电
*/
public static final String STORED_ENERGY = "cn";
/**
* 柴油发电
*/
public static final String DIESEL_POWER = "cf";
/**
* 间抽井
*/
public static final String INTERVAL_PUMPING_WELL = "INTERVAL";
/**
* 连抽井
*/
public static final String CONTINUOUS_PUMPING_WELL = "CONTINUOUS";
/**
* 字符串一
*/
public static final String STRING_ONE = "1";
/**
* 已优化
*/
public static final String OPTIMIZED_C = "已优化";
/**
* 未优化
*/
public static final String NO_OPTIMIZATION_C = "未优化";
/*------------------------------数字------------------------------*/
/**
......@@ -75,6 +115,11 @@ public class BusinessConstant {
*/
public static final String END_OF_DAY_TIME = "23:59";
/**
* 一天开始时间
*/
public static final String START_OF_DAY_TIME = "00:00";
/**
* 日期标志
*/
......
......@@ -423,6 +423,9 @@ public class SysOrganizationService {
/**
* 组织机构管理--动态查询列表
* GET /system/sys-organization/query-sys-organization-list
* 接口ID:106823391
* 接口地址:https://app.apifox.com/project/3196988/apis/api-106823391
*
* @param context 上下文
* @param input 输入
......@@ -452,6 +455,9 @@ public class SysOrganizationService {
/**
* 组织机构管理--查询组织和线路列表
* GET /system/sys-organization/query-org-and-line-list
* 接口ID:108626631
* 接口地址:https://app.apifox.com/project/3196988/apis/api-108626631
*
* @param context 上下文
* @param input 输入
......@@ -784,6 +790,16 @@ public class SysOrganizationService {
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
/**
* 组织机构管理--分页列表
* POST /system/sys-organization/querySysOrganizationViewIncluedOwnerPage
* 接口ID:106663218
* 接口地址:https://app.apifox.com/project/3196988/apis/api-106663218
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QuerySysOrganizationViewOutput}>
*/
@XText("查询组织机构列表")
@XApiPost
public XPageResult<QuerySysOrganizationViewOutput> querySysOrganizationViewIncluedOwnerPage(XContext context, QuerySysOrganizationViewInput input) {
......
......@@ -107,7 +107,8 @@
sys_organization_rel sor
LEFT JOIN sys_organization ou ON ou.id = sor.ou_id
<where>
ou.is_deleted = #{isDeleted}
sor.end_time >= NOW()
and ou.is_deleted = #{isDeleted}
<if test="id != null and id != ''">
and sor.parent_ou_id = #{id}
</if>
......@@ -471,7 +472,8 @@
from sys_organization so
left join sys_organization_rel sor on sor.parent_ou_id = so.id
<where>
sor.ou_id in
sor.end_time >= NOW()
AND sor.ou_id in
<foreach collection="list" open="(" close=")" separator="," item="item">
#{item}
</foreach>
......@@ -539,6 +541,7 @@
sys_organization o
WHERE
r.ou_id = o.id
AND r.end_time >= NOW()
AND o.is_deleted = 1
<if test="parentOuId != null and parentOuId != ''">
AND r.parent_ou_id = #{parentOuId}
......@@ -575,9 +578,10 @@
o.ou_name AS ou_name,
'' AS line_id,
'ORG' AS ou_level
FROM sys_organization_rel r
LEFT JOIN sys_organization o ON o.id = r.ou_id
FROM sys_organization o
LEFT JOIN sys_organization_rel r ON o.id = r.ou_id
WHERE r.parent_ou_id = #{id}
AND r.end_time >= NOW()
AND o.is_deleted = 1
ORDER BY r.sort)
UNION ALL
......
......@@ -28,11 +28,11 @@ public enum BusinessError implements XError {
@Override
public int getCode() {
return 0;
return code;
}
@Override
public String getText() {
return null;
return text;
}
}
......@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.core.base.entity.BaseDieselGeneratorEnt;
import pps.core.base.entity.BasePowerLineDieselEnt;
import pps.core.base.enums.BusinessError;
......@@ -110,23 +111,37 @@ public class BaseDieselGeneratorService {
return XSingleResult.success(output);
}
/**
* 分页查询
* GET /base/base-diesel-generator/query-base-diesel-generator
* 接口ID:105601992
* 接口地址:https://app.apifox.com/project/3196988/apis/api-105601992
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QueryBaseDieselGeneratorOutput}>
*/
@XText("分页查询")
@XApiAnonymous
@XApiGet
public XPageResult<QueryBaseDieselGeneratorOutput> queryBaseDieselGenerator(XContext context, QueryBaseDieselGeneratorInput input) {
String ouId = input.getOuId();
String ouName = input.getOuName();
String deviceName = input.getDeviceName();
String excludeIdFlag = input.getExcludeIdFlag();
BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class);
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, ouId);
QueryWrapper<BaseDieselGeneratorEnt> queryWrapper = new QueryWrapper<>();
if (StringUtils.equals(BusinessConstant.STRING_ONE, input.getExcludeIdFlag())) {
queryWrapper.lambda()
.notExists("SELECT 1 FROM base_power_line_diesel w WHERE base_diesel_generator.id = w.diesel_id AND w.is_deleted = 1")
.eq(BaseDieselGeneratorEnt::getOuId, input.getOuId());
} else {
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
queryWrapper.lambda()
.in(CollUtil.isNotEmpty(allListByOuId), BaseDieselGeneratorEnt::getOuId, allListByOuId);
}
queryWrapper.lambda()
.notExists("1".equals(excludeIdFlag), "SELECT 1 FROM base_power_line_diesel w WHERE w.ou_id = {0} AND base_diesel_generator.id = w.diesel_id AND w.is_deleted = 1", input.getOuId())
.eq(BaseDieselGeneratorEnt::getIsDeleted, BusinessConstant.ONE)
.in(CollUtil.isNotEmpty(allListByOuId), BaseDieselGeneratorEnt::getOuId, allListByOuId)
.like(StrUtil.isNotEmpty(ouName), BaseDieselGeneratorEnt::getOuName, ouName)
.like(StrUtil.isNotEmpty(deviceName), BaseDieselGeneratorEnt::getDeviceName, deviceName)
.eq(BaseDieselGeneratorEnt::getIsDeleted, BusinessConstant.ONE)
.orderByDesc(BaseDieselGeneratorEnt::getModifyTime);
return XMapperHelper.query(mapper, input, queryWrapper, QueryBaseDieselGeneratorOutput.class);
}
......
......@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.core.base.entity.BaseEnergyStorageDeviceEnt;
import pps.core.base.entity.BasePowerLineStorageEnt;
import pps.core.base.enums.BusinessError;
......@@ -110,23 +111,37 @@ public class BaseEnergyStorageDeviceService {
return XSingleResult.success(output);
}
/**
* 分页查询
* GET /base/base-energy-storage-device/query-base-energy-storage-device
* 接口ID:105602201
* 接口地址:https://app.apifox.com/project/3196988/apis/api-105602201
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QueryBaseEnergyStorageDeviceOutput}>
*/
@XText("分页查询")
@XApiAnonymous
@XApiGet
public XPageResult<QueryBaseEnergyStorageDeviceOutput> queryBaseEnergyStorageDevice(XContext context, QueryBaseEnergyStorageDeviceInput input) {
String ouId = input.getOuId();
String ouName = input.getOuName();
String deviceName = input.getDeviceName();
String excludeIdFlag = input.getExcludeIdFlag();
BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class);
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, ouId);
QueryWrapper<BaseEnergyStorageDeviceEnt> queryWrapper = new QueryWrapper<>();
if (StringUtils.equals(BusinessConstant.STRING_ONE, input.getExcludeIdFlag())) {
queryWrapper.lambda()
.notExists("SELECT 1 FROM base_power_line_storage w WHERE base_energy_storage_device.id = w.storage_id AND w.is_deleted = 1")
.eq(BaseEnergyStorageDeviceEnt::getOuId, input.getOuId());
} else {
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
queryWrapper.lambda()
.in(CollUtil.isNotEmpty(allListByOuId), BaseEnergyStorageDeviceEnt::getOuId, allListByOuId);
}
queryWrapper.lambda()
.notExists("1".equals(excludeIdFlag), "SELECT 1 FROM base_power_line_storage w WHERE w.ou_id = {0} AND base_energy_storage_device.id = w.storage_id AND w.is_deleted = 1", input.getOuId())
.eq(BaseEnergyStorageDeviceEnt::getIsDeleted, BusinessConstant.ONE)
.in(CollUtil.isNotEmpty(allListByOuId), BaseEnergyStorageDeviceEnt::getOuId, allListByOuId)
.like(StrUtil.isNotEmpty(ouName), BaseEnergyStorageDeviceEnt::getOuName, ouName)
.like(StrUtil.isNotEmpty(deviceName), BaseEnergyStorageDeviceEnt::getDeviceName, deviceName)
.eq(BaseEnergyStorageDeviceEnt::getIsDeleted, BusinessConstant.ONE)
.orderByDesc(BaseEnergyStorageDeviceEnt::getModifyTime);
return XMapperHelper.query(mapper, input, queryWrapper, QueryBaseEnergyStorageDeviceOutput.class);
}
......
......@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.core.base.entity.BasePhotovoltaicPlantEnt;
import pps.core.base.entity.BasePowerLineEnt;
import pps.core.base.entity.BasePowerLinePlantEnt;
......@@ -126,21 +127,35 @@ public class BasePhotovoltaicPlantService {
return XSingleResult.success(output);
}
/**
* 分页查询
* GET /base/base-photovoltaic-plant/query-base-photovoltaic-plant
* 接口ID:105466277
* 接口地址:https://app.apifox.com/project/3196988/apis/api-105466277
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QueryBasePhotovoltaicPlantOutput}>
*/
@XText("分页查询")
@XApiAnonymous
@XApiGet
public XPageResult<QueryBasePhotovoltaicPlantOutput> queryBasePhotovoltaicPlant(XContext context, QueryBasePhotovoltaicPlantInput input) {
BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class);
String stationName = input.getStationName();
String ouId = input.getOuId();
String excludeIdFlag = input.getExcludeIdFlag();
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, ouId);
QueryWrapper<BasePhotovoltaicPlantEnt> queryWrapper = new QueryWrapper<>();
if (StringUtils.equals(BusinessConstant.STRING_ONE, input.getExcludeIdFlag())) {
queryWrapper.lambda()
.notExists("SELECT 1 FROM base_power_line_plant w WHERE base_photovoltaic_plant.id = w.plant_id AND w.is_deleted = 1")
.eq(BasePhotovoltaicPlantEnt::getOuId, input.getOuId());
} else {
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
queryWrapper.lambda()
.in(CollUtil.isNotEmpty(allListByOuId), BasePhotovoltaicPlantEnt::getOuId, allListByOuId);
}
queryWrapper.lambda()
.notExists("1".equals(excludeIdFlag), "SELECT 1 FROM base_power_line_plant w WHERE w.ou_id = {0} AND base_photovoltaic_plant.id = w.plant_id AND w.is_deleted = 1", input.getOuId())
.eq(BasePhotovoltaicPlantEnt::getIsDeleted, BusinessConstant.ONE)
.in(CollUtil.isNotEmpty(allListByOuId), BasePhotovoltaicPlantEnt::getOuId, allListByOuId)
.like(StrUtil.isNotEmpty(stationName), BasePhotovoltaicPlantEnt::getStationName, stationName)
.eq(BasePhotovoltaicPlantEnt::getIsDeleted, BusinessConstant.ONE)
.orderByDesc(BasePhotovoltaicPlantEnt::getModifyTime);
return XMapperHelper.query(mapper, input, queryWrapper, QueryBasePhotovoltaicPlantOutput.class);
}
......
......@@ -116,18 +116,33 @@ public class BaseWellheadService {
return XSingleResult.success(output);
}
/**
* 分页查询
* GET /base/base-wellhead/query-base-wellhead
* 接口ID:105431641
* 接口地址:https://app.apifox.com/project/3196988/apis/api-105431641
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QueryBaseWellheadOutput}>
*/
@XText("分页查询")
@XApiAnonymous
@XApiGet
public XPageResult<QueryBaseWellheadOutput> queryBaseWellhead(XContext context, QueryBaseWellheadInput input) {
String excludeIdFlag = input.getExcludeIdFlag();
BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class);
QueryWrapper<BaseWellheadEnt> queryWrapper = new QueryWrapper<>();
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
if (StringUtils.equals(BusinessConstant.STRING_ONE, input.getExcludeIdFlag())) {
queryWrapper.lambda()
.notExists("SELECT 1 FROM base_power_line_wellhead w WHERE base_wellhead.id = w.wellhead_id AND w.is_deleted = 1")
.eq(BaseWellheadEnt::getOuId, input.getOuId());
} else {
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
queryWrapper.lambda()
.in(CollUtil.isNotEmpty(allListByOuId), BaseWellheadEnt::getOuId, allListByOuId);
}
queryWrapper.lambda()
.notExists(StringUtils.equals("1", excludeIdFlag), "SELECT 1 FROM base_power_line_wellhead w WHERE w.ou_id = {0} AND base_wellhead.id = w.wellhead_id AND w.is_deleted = 1", input.getOuId())
.eq(BaseWellheadEnt::getIsDeleted, BusinessConstant.ONE)
.in(CollUtil.isNotEmpty(allListByOuId), BaseWellheadEnt::getOuId, allListByOuId)
.orderByDesc(BaseWellheadEnt::getModifyTime);
return XMapperHelper.query(mapper, input, queryWrapper, QueryBaseWellheadOutput.class);
}
......
package pps.core.base.service.data.base_diesel_generator;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
/**
* 柴发设备
*
* @author ZWT
* @date 2023/09/25
*/
@Data
public class QueryBaseDieselGeneratorInput extends XPageInput {
@XText("组织机构ID")
@NotBlank(message = "缺少组织机构ID")
private String ouId;
@XText("组织机构name")
......@@ -35,5 +43,4 @@ public class QueryBaseDieselGeneratorInput extends XPageInput {
@XText("排除已绑定线路标识")
private String excludeIdFlag;
}
......@@ -2,36 +2,21 @@ package pps.core.base.service.data.base_diesel_generator;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
import java.util.Date;
/**
* 柴发设备
*
* @author ZWT
* @date 2023/09/25
*/
@Data
public class QueryBaseDieselGeneratorOutput extends XPageInput {
public class QueryBaseDieselGeneratorOutput {
@XText("ID")
private String id;
@XText("是否删除(1_是;0_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("组织机构ID")
private String ouId;
......@@ -55,5 +40,4 @@ public class QueryBaseDieselGeneratorOutput extends XPageInput {
@XText("备用功率(KW)")
private BigDecimal standbyPower;
}
package pps.core.base.service.data.base_energy_storage_device;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
/**
* 储能设备
*
* @author ZWT
* @date 2023/09/25
*/
@Data
public class QueryBaseEnergyStorageDeviceInput extends XPageInput {
@XText("组织机构ID")
@NotBlank(message = "缺少组织机构ID")
private String ouId;
@XText("组织机构name")
......@@ -35,8 +43,7 @@ public class QueryBaseEnergyStorageDeviceInput extends XPageInput {
@XText("额定充电功率(KW)")
private BigDecimal ratedChargingPower;
@XText("排除已绑定线路标识")
private String excludeIdFlag;
}
......@@ -3,36 +3,21 @@ package pps.core.base.service.data.base_energy_storage_device;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
import java.util.Date;
/**
* 储能设备
*
* @author ZWT
* @date 2023/09/25
*/
@Data
public class QueryBaseEnergyStorageDeviceOutput extends XPageInput {
public class QueryBaseEnergyStorageDeviceOutput {
@XText("ID")
private String id;
@XText("是否删除(1_是;0_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("组织机构ID")
private String ouId;
......@@ -67,5 +52,4 @@ public class QueryBaseEnergyStorageDeviceOutput extends XPageInput {
@XText("额定放电效率")
@TableField
private BigDecimal ratedDischargeEfficiency;
}
package pps.core.base.service.data.base_photovoltaic_plant;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
/**
* 光伏电站
*
* @author ZWT
* @date 2023/09/25
*/
@Data
public class QueryBasePhotovoltaicPlantInput extends XPageInput {
@XText("组织机构ID")
@NotBlank(message = "缺少组织机构ID")
private String ouId;
@XText("电站名称")
......@@ -31,9 +40,10 @@ public class QueryBasePhotovoltaicPlantInput extends XPageInput {
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
@XText("排除已绑定线路标识")
private String excludeIdFlag;
}
......@@ -2,36 +2,21 @@ package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
import java.util.Date;
/**
* 光伏电站
*
* @author ZWT
* @date 2023/09/25
*/
@Data
public class QueryBasePhotovoltaicPlantOutput extends XPageInput {
public class QueryBasePhotovoltaicPlantOutput {
@XText("ID")
private String id;
@XText("是否删除(0_是;1_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("组织机构ID")
private String ouId;
......@@ -52,9 +37,10 @@ public class QueryBasePhotovoltaicPlantOutput extends XPageInput {
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
package pps.core.base.service.data.base_wellhead;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
/**
* 井口
*
* @author ZWT
* @date 2023/09/25
*/
@Data
public class QueryBaseWellheadInput extends XPageInput {
@XText("组织机构ID")
@NotBlank(message = "缺少组织机构ID")
private String ouId;
@XText("组织机构ID")
private String ouName;
......@@ -19,6 +28,7 @@ public class QueryBaseWellheadInput extends XPageInput {
@XText("运行类型key(字典获取)")
private String runTypeKey;
@XText("运行类型name(字典获取)")
private String runTypeName;
......@@ -27,5 +37,4 @@ public class QueryBaseWellheadInput extends XPageInput {
@XText("排除已绑定线路标识")
private String excludeIdFlag;
}
}
\ No newline at end of file
package pps.core.base.service.data.base_wellhead;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
import java.util.Date;
public class QueryBaseWellheadOutput extends XPageInput {
@XText("ID")
private String id;
@XText("是否删除(1_是;0_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
/**
* 井口设置
*
* @author ZWT
* @date 2023/09/25
*/
@Data
public class QueryBaseWellheadOutput {
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("ID")
private String id;
@XText("组织机构ID")
private String ouId;
@XText("组织机构名称")
private String ouName;
......@@ -40,121 +28,10 @@ public class QueryBaseWellheadOutput extends XPageInput {
@XText("运行类型key(字典获取)")
private String runTypeKey;
@XText("运行类型Name(字典获取)")
private String runTypeName;
@XText("运行功率(KW)")
private BigDecimal serviceRating;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public Integer getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(Integer value) {
this.isDeleted = 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 getOuId() {
return this.ouId;
}
public void setOuId(String value) {
this.ouId = value;
}
public String getWellNumber() {
return this.wellNumber;
}
public void setWellNumber(String value) {
this.wellNumber = value;
}
public String getRunTypeKey() {
return this.runTypeKey;
}
public void setRunTypeKey(String value) {
this.runTypeKey = value;
}
public BigDecimal getServiceRating() {
return this.serviceRating;
}
public void setServiceRating(BigDecimal value) {
this.serviceRating = value;
}
public String getOuName() {
return ouName;
}
public void setOuName(String ouName) {
this.ouName = ouName;
}
public String getRunTypeName() {
return runTypeName;
}
public void setRunTypeName(String runTypeName) {
this.runTypeName = runTypeName;
}
}
......@@ -24,7 +24,7 @@ public class CronConstant {
public static final String EVERY_DAY = "0 15 0 * * ?";
/**
* 每一天结束时间 23:30:00
* 每一天结束时间 23:50:00
*/
public static final String END_OF_DAY = "0 30 23 * * ?";
}
public static final String END_OF_DAY = "0 50 23 * * ?";
}
\ No newline at end of file
......@@ -37,4 +37,4 @@ public class SpaceOptimizeShortJob implements XJob {
logger.info("------ SpaceOptimizeShortJob end:{}", System.currentTimeMillis());
return XServiceResult.OK;
}
}
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText;
import java.io.Serializable;
import java.util.Date;
/**
* 间开制度小间开时段配置
......@@ -41,4 +42,12 @@ public class SpaceInstitutionDurationEnt extends BaseModel implements Serializab
@XText("关井时间")
@TableField
private String closeWellTime;
@XText("开井时间")
@TableField(exist = false)
private Date openTime;
@XText("关井时间")
@TableField(exist = false)
private Date closeTime;
}
......@@ -6,6 +6,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText;
import java.io.Serializable;
import java.util.Date;
/**
* 间开优化井口制度记录
......@@ -43,4 +44,12 @@ public class SpaceOptimizeDurationDTO extends BaseModel implements Serializable
@XText("关井时间")
@TableField
private String closeWellTime;
@XText("开井时间")
@TableField(exist = false)
private Date openTime;
@XText("关井时间")
@TableField(exist = false)
private Date closeTime;
}
......@@ -28,11 +28,11 @@ public enum BusinessError implements XError {
@Override
public int getCode() {
return 0;
return code;
}
@Override
public String getText() {
return null;
return text;
}
}
......@@ -2,7 +2,9 @@ package pps.core.space.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import pps.core.space.entity.*;
import pps.core.space.entity.SpaceOptimizeDurationDTO;
import pps.core.space.entity.SpaceOptimizePeriodDTO;
import pps.core.space.entity.SpaceOptimizeWellheadDTO;
import java.util.List;
......@@ -40,7 +42,7 @@ public interface SpaceOptimizeViewMapper {
int longDurationBatchInsertList(@Param(value = "list") List<SpaceOptimizeDurationDTO> list);
/**
* 期间开优化批量新增
* 中短期间开优化批量新增
*
* @param list 列表
* @return int
......@@ -48,7 +50,7 @@ public interface SpaceOptimizeViewMapper {
int midPeriodBatchInsertList(@Param(value = "list") List<SpaceOptimizePeriodDTO> list);
/**
* 期间开优化井口批量新增
* 中短期间开优化井口批量新增
*
* @param list 列表
* @return int
......@@ -56,10 +58,34 @@ public interface SpaceOptimizeViewMapper {
int midWellheadBatchInsertList(@Param(value = "list") List<SpaceOptimizeWellheadDTO> list);
/**
* 期间开优化井口配置批量新增
* 中短期间开优化井口配置批量新增
*
* @param list 列表
* @return int
*/
int midDurationBatchInsertList(@Param(value = "list") List<SpaceOptimizeDurationDTO> list);
/**
* 短期间开优化批量新增
*
* @param list 列表
* @return int
*/
int shortPeriodBatchInsertList(@Param(value = "list") List<SpaceOptimizePeriodDTO> list);
/**
* 短期间开优化井口批量新增
*
* @param list 列表
* @return int
*/
int shortWellheadBatchInsertList(@Param(value = "list") List<SpaceOptimizeWellheadDTO> list);
/**
* 短期间开优化井口配置批量新增
*
* @param list 列表
* @return int
*/
int shortDurationBatchInsertList(@Param(value = "list") List<SpaceOptimizeDurationDTO> list);
}
......@@ -69,7 +69,7 @@ public class SpaceOptimizeLongPeriodService {
output.setLineName(lineName);
output.setOuName(ouMap.get(output.getOuId()));
output.setGridTypeName(gridTypeMap.get(output.getGridTypeKey()));
output.setOptimizeStateValue(output.getOptimizeState().equals(0) ? "已优化" : "未优化");
output.setOptimizeStateValue(output.getOptimizeState().equals(0) ? BusinessConstant.OPTIMIZED_C : BusinessConstant.NO_OPTIMIZATION_C);
});
}
return XPageResult.success(outputs, input, pageInfo.getTotal());
......
......@@ -4,12 +4,14 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import pps.cloud.prediction.service.data.storage_predicted_power_data.DynamicQueryStoragePredictedPowerInput;
import pps.cloud.space.service.ISpaceOptimizeMidCloudService;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.*;
import pps.core.space.mapper.SpaceInstitutionDurationMapper;
import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceOptimizeDurationDTO;
import pps.core.space.entity.SpaceOptimizePeriodDTO;
import pps.core.space.entity.SpaceOptimizeWellheadDTO;
import pps.core.space.mapper.SpaceOptimizeViewMapper;
import pps.core.space.service.data.SpaceOptimizeLineRelation;
import xstartup.annotation.XService;
......@@ -19,7 +21,6 @@ import xstartup.helper.XTransactionHelper;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 中短期间开优化Cloud模块
......@@ -43,12 +44,10 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
String startWeek = date.toString(BusinessConstant.DATE_FORMAT_DAY);
//取生效中的基础间开
List<SpaceInstitutionDetailEnt> detailEntList = super.getEffectiveSpaceInstitution(context, startWeek);
SpaceOptimizeLineRelation wellheadAndPlant = super.getWellheadAndPlant(context, detailEntList);
List<SpaceInstitutionWellheadView> spaceWellheadList = wellheadAndPlant.getSpaceWellheadList();
Map<String, List<String>> plantIdsByLineIdMap = wellheadAndPlant.getPlantIdsByLineIdMap();
SpaceOptimizeLineRelation relation = super.getOptimizeLineRelation(context, detailEntList);
//月份要加一
int monthNum = date.month() + 1;
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
DateTime lastWeek = DateUtil.lastWeek();
List<SpaceOptimizePeriodDTO> periodDTOList = new ArrayList<>(32);
List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64);
List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128);
......@@ -67,19 +66,31 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
switch (detail.getGridTypeKey()) {
//并网型优化
case "1":
//获取当前制度对应的光伏预测数据列表
List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = super.getAveragePowerGenerationListByPlantIds(context,
super.gridConnectedOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), detail, monthNum, periodId,
DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(plantIdsByLineIdMap.get(lineId))
.plantIds(relation.getPlantIdsByLineIdMap().get(lineId))
.startTime(startWeek)
.endTime(nextWeek)
.dateType(BusinessConstant.ONE)
.build()
);
super.gridConnectedOptimization(context, durationMapper, wellheadDTOList, durationDTOList, unOptimizeDurationList,
spaceWellheadList, avgPowerList, detail, monthNum, detailId, periodId, lineId);
break;
//离网型优化
case "0":
super.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), relation.getStorageAvgMap(), detail, periodId,
DynamicQueryStoragePredictedPowerInput.builder()
.storageIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId()))
.startTime(DateUtil.beginOfWeek(lastWeek).toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(DateUtil.endOfWeek(lastWeek).toString(BusinessConstant.DATE_FORMAT_DAY))
.build(),
DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(relation.getPlantIdsByLineIdMap().get(lineId))
.startTime(startWeek)
.endTime(nextWeek)
.dateType(BusinessConstant.ONE)
.build());
break;
default:
//电网类型不存在
......
......@@ -69,7 +69,7 @@ public class SpaceOptimizeMidPeriodService {
output.setLineName(lineName);
output.setOuName(ouMap.get(output.getOuId()));
output.setGridTypeName(gridTypeMap.get(output.getGridTypeKey()));
output.setOptimizeStateValue(output.getOptimizeState().equals(0) ? "已优化" : "未优化");
output.setOptimizeStateValue(output.getOptimizeState().equals(0) ? BusinessConstant.OPTIMIZED_C : BusinessConstant.NO_OPTIMIZATION_C);
});
}
return XPageResult.success(outputs, input, pageInfo.getTotal());
......
package pps.core.space.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceOptimizeShortDurationView;
import pps.core.space.entity.SpaceOptimizeShortPeriodEnt;
import pps.core.space.entity.SpaceOptimizeShortWellheadEnt;
import pps.core.space.mapper.SpaceInstitutionDetailMapper;
import pps.core.space.mapper.SpaceOptimizeShortDurationViewMapper;
import pps.core.space.mapper.SpaceOptimizeShortPeriodMapper;
import pps.core.space.mapper.SpaceOptimizeShortWellheadMapper;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import pps.core.space.entity.*;
import pps.core.space.mapper.*;
import pps.core.space.service.data.SpaceOptimizeDateDuration;
import pps.core.space.service.data.space_optimize_short_period.GetSpaceOptimizeShortPeriodViewInput;
import pps.core.space.service.data.space_optimize_short_period.GetSpaceOptimizeShortPeriodViewOutput;
......@@ -23,10 +21,7 @@ import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -51,49 +46,78 @@ public class SpaceOptimizeShortPeriodService {
@XText("短期间开优化--详情")
public XSingleResult<GetSpaceOptimizeShortPeriodViewOutput> getSpaceOptimizeShortPeriodView(XContext context, GetSpaceOptimizeShortPeriodViewInput input) {
SpaceOptimizeShortPeriodMapper mapper = context.getBean(SpaceOptimizeShortPeriodMapper.class);
//查当日记录
GetSpaceOptimizeShortPeriodViewOutput output = new GetSpaceOptimizeShortPeriodViewOutput();
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
//查询当前线路的基础制度
DateTime date = DateUtil.date();
SpaceInstitutionDetailEnt detailEnt = detailMapper.selectOne(new LambdaQueryWrapper<SpaceInstitutionDetailEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceInstitutionDetailEnt::getIsCurrentBasic, BusinessConstant.ZERO)
.le(SpaceInstitutionDetailEnt::getInstitutionStartDate, date)
.ge(SpaceInstitutionDetailEnt::getInstitutionEndDate, date)
.last("LIMIT 1")
);
if (Objects.isNull(detailEnt)) {
//当前线路没有基础制度
output.setWellheadList(new ArrayList<>(0));
}
output.setGridTypeKey(detailEnt.getGridTypeKey());
//查出当前制度所有的井口
String institutionId = detailEnt.getId();
SpaceInstitutionWellheadMapper wellheadMapper = context.getBean(SpaceInstitutionWellheadMapper.class);
List<SpaceInstitutionWellheadEnt> wellheadEntList = wellheadMapper.selectList(new LambdaQueryWrapper<SpaceInstitutionWellheadEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceInstitutionWellheadEnt::getInstitutionId, institutionId)
.orderByAsc(BaseModel::getCreateTime)
);
if (CollUtil.isEmpty(wellheadEntList)) {
//缺少井口
output.setWellheadList(new ArrayList<>(0));
}
//查当日是否存在优化记录
SpaceOptimizeShortPeriodEnt period = mapper.selectOne(
new LambdaQueryWrapper<SpaceOptimizeShortPeriodEnt>()
.eq(SpaceOptimizeShortPeriodEnt::getLineId, input.getLineId())
.apply("DATE_FORMAT( optimize_date, '%Y-%m-%d' ) = curdate()")
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.apply("DATE_FORMAT( optimize_date, '%Y-%m-%d' ) = CURDATE()")
);
GetSpaceOptimizeShortPeriodViewOutput output = new GetSpaceOptimizeShortPeriodViewOutput();
Map<String, List<SpaceOptimizeDateDuration>> collect = new HashMap<>(0);
if (Objects.nonNull(period)) {
//查间开制度详情
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
SpaceInstitutionDetailEnt detailEnt = detailMapper.selectById(period.getInstitutionId());
output.setGridTypeKey(detailEnt.getGridTypeKey());
String shortPeriodId = period.getId();
//查井口列表
SpaceOptimizeShortWellheadMapper wellheadMapper = context.getBean(SpaceOptimizeShortWellheadMapper.class);
List<SpaceOptimizeShortWellheadEnt> wellheadList = wellheadMapper.selectList(new LambdaQueryWrapper<SpaceOptimizeShortWellheadEnt>()
.eq(SpaceOptimizeShortWellheadEnt::getShortPeriodId, shortPeriodId)
//如果存在,查出优化过的区间
SpaceOptimizeShortDurationViewMapper durationViewMapper = context.getBean(SpaceOptimizeShortDurationViewMapper.class);
List<SpaceOptimizeShortDurationView> durationViewList = durationViewMapper.selectList(SpaceOptimizeShortDurationView.builder()
.shortPeriodId(period.getId())
.build()
);
if (CollUtil.isNotEmpty(wellheadList)) {
List<GetSpaceOptimizeShortWellheadViewOutput> wellheadViewOutputs = XCopyUtils.copyNewList(wellheadList, GetSpaceOptimizeShortWellheadViewOutput.class);
//查井口间隔配置
SpaceOptimizeShortDurationViewMapper durationViewMapper = context.getBean(SpaceOptimizeShortDurationViewMapper.class);
List<SpaceOptimizeShortDurationView> durationViewList = durationViewMapper.selectList(SpaceOptimizeShortDurationView.builder()
.shortPeriodId(shortPeriodId)
.build()
);
if (CollUtil.isNotEmpty(durationViewList)) {
Map<String, List<SpaceOptimizeDateDuration>> collect = XCopyUtils.copyNewList(durationViewList, SpaceOptimizeDateDuration.class)
.stream()
.collect(Collectors.groupingBy(SpaceOptimizeDateDuration::getWellheadId));
wellheadViewOutputs.forEach(w -> {
if (collect.containsKey(w.getWellheadId())) {
w.setDurationList(ServiceUtil.getAllDateDuration(collect.get(w.getWellheadId())));
} else {
w.setDurationList(new ArrayList<>(0));
}
});
}
output.setWellheadList(wellheadViewOutputs);
if (CollUtil.isNotEmpty(durationViewList)) {
collect = XCopyUtils.copyNewList(durationViewList, SpaceOptimizeDateDuration.class)
.stream()
.collect(Collectors.groupingBy(SpaceOptimizeDateDuration::getWellheadId));
}
} else {
output.setWellheadList(new ArrayList<>(0));
//如果没有,查初始区间
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
List<SpaceInstitutionDurationEnt> durationEntList = durationMapper.selectList(new LambdaQueryWrapper<SpaceInstitutionDurationEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceInstitutionDurationEnt::getInstitutionId, institutionId)
.orderByAsc(BaseModel::getCreateTime)
);
if (CollUtil.isNotEmpty(durationEntList)) {
collect = XCopyUtils.copyNewList(durationEntList, SpaceOptimizeDateDuration.class)
.stream()
.collect(Collectors.groupingBy(SpaceOptimizeDateDuration::getWellheadId));
}
}
//遍历井口,添加区间
List<GetSpaceOptimizeShortWellheadViewOutput> wellheadViewOutputs = XCopyUtils.copyNewList(wellheadEntList, GetSpaceOptimizeShortWellheadViewOutput.class);
for (GetSpaceOptimizeShortWellheadViewOutput wellheadViewOutput : wellheadViewOutputs) {
if (collect.containsKey(wellheadViewOutput.getWellheadId())) {
wellheadViewOutput.setDurationList(ServiceUtil.getAllDateDuration(collect.get(wellheadViewOutput.getWellheadId())));
} else {
wellheadViewOutput.setDurationList(new ArrayList<>(0));
}
}
output.setWellheadList(wellheadViewOutputs);
return XSingleResult.success(output);
}
}
\ No newline at end of file
......@@ -25,7 +25,7 @@ public class SpaceOptimizeLineRelation {
/**
* 井口列表
*/
List<SpaceInstitutionWellheadView> spaceWellheadList;
Map<String, List<SpaceInstitutionWellheadView>> wellheadsByInstitutionIdIdMap;
/**
* 电站Map
......
......@@ -158,7 +158,7 @@ public class ServiceUtil {
SpaceOptimizeDateOutput spaceOptimizeDateOutput = new SpaceOptimizeDateOutput();
spaceOptimizeDateOutput.setDateTime(r);
spaceOptimizeDateOutput.setOptimizeCode(BusinessConstant.ZERO);
spaceOptimizeDateOutput.setOptimizeValue("已优化");
spaceOptimizeDateOutput.setOptimizeValue(BusinessConstant.OPTIMIZED_C);
return spaceOptimizeDateOutput;
}).collect(Collectors.toList());
}
......@@ -174,8 +174,8 @@ public class ServiceUtil {
if (CollUtil.isEmpty(optimizeList)) {
allList.add(
SpaceOptimizeDateDuration.builder()
.openWellTime("00:00")
.closeWellTime("23:59")
.openWellTime(BusinessConstant.START_OF_DAY_TIME)
.closeWellTime(BusinessConstant.END_OF_DAY_TIME)
.isOpen(0)
.build()
);
......@@ -189,10 +189,10 @@ public class ServiceUtil {
optimize.setIsOpen(1);
if (i == 0) {
//如果开始时间不是从00:00开始,初始化开始时间为关井时间
if (!StringUtils.equals("00:00", openWellTime)) {
if (!StringUtils.equals(BusinessConstant.START_OF_DAY_TIME, openWellTime)) {
allList.add(
SpaceOptimizeDateDuration.builder()
.openWellTime("00:00")
.openWellTime(BusinessConstant.START_OF_DAY_TIME)
.closeWellTime(openWellTime)
.isOpen(0)
.build()
......@@ -219,11 +219,11 @@ public class ServiceUtil {
}
if (i == last) {
//如果结束时间不是24:00开始,初始化最终关井时间
if (!StringUtils.equals("23:59", closeWellTime)) {
if (!StringUtils.equals(BusinessConstant.END_OF_DAY_TIME, closeWellTime)) {
allList.add(
SpaceOptimizeDateDuration.builder()
.openWellTime(closeWellTime)
.closeWellTime("23:59")
.closeWellTime(BusinessConstant.END_OF_DAY_TIME)
.isOpen(0)
.build()
);
......
......@@ -14,7 +14,7 @@
<result column="institution_id" property="institutionId" jdbcType="VARCHAR"/>
<result column="execution_cycle" property="executionCycle" jdbcType="VARCHAR"/>
<result column="optimize_state" property="optimizeState" jdbcType="INTEGER"/>
<result column="optimize_deadline" property="optimizeDeadline" jdbcType="DATE"/>
<result column="optimize_deadline" property="optimizeDeadline" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id
......
......@@ -14,7 +14,7 @@
<result column="institution_id" property="institutionId" jdbcType="VARCHAR"/>
<result column="execution_cycle" property="executionCycle" jdbcType="VARCHAR"/>
<result column="optimize_state" property="optimizeState" jdbcType="INTEGER"/>
<result column="optimize_deadline" property="optimizeDeadline" jdbcType="DATE"/>
<result column="optimize_deadline" property="optimizeDeadline" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id
......
......@@ -13,7 +13,7 @@
<result column="line_id" property="lineId" jdbcType="VARCHAR"/>
<result column="institution_id" property="institutionId" jdbcType="VARCHAR"/>
<result column="optimize_state" property="optimizeState" jdbcType="INTEGER"/>
<result column="optimize_date" property="optimizeDate" jdbcType="DATE"/>
<result column="optimize_date" property="optimizeDate" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id
......
......@@ -177,4 +177,77 @@
)
</foreach>
</insert>
<insert id="shortPeriodBatchInsertList" parameterType="list">
INSERT INTO space_optimize_short_period (id, create_by_id, create_by_name, create_time, modify_by_id,
modify_by_name, modify_time, line_id, institution_id, optimize_state, optimize_date)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.lineId},
#{item.institutionId},
#{item.optimizeState},
#{item.optimizeDeadline}
)
</foreach>
</insert>
<insert id="shortWellheadBatchInsertList" parameterType="list">
INSERT INTO space_optimize_short_wellhead (id, create_by_id, create_by_name, create_time, modify_by_id,
modify_by_name, modify_time, short_period_id, wellhead_id, well_number)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.periodId},
#{item.wellheadId},
#{item.wellNumber}
)
</foreach>
</insert>
<insert id="shortDurationBatchInsertList" parameterType="list">
INSERT INTO space_optimize_short_duration (id, create_by_id, create_by_name, create_time,
modify_by_id, modify_by_name, modify_time, record_id, short_period_id, wellhead_id, is_optimize,
generation_type_key, open_well_time, close_well_time)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.recordId},
#{item.periodId},
#{item.wellheadId},
#{item.isOptimize},
<choose>
<when test="item.generationTypeKey != null and item.generationTypeKey != ''">
#{item.generationTypeKey},
</when>
<otherwise>
NULL,
</otherwise>
</choose>
#{item.openWellTime},
#{item.closeWellTime}
)
</foreach>
</insert>
</mapper>
\ No newline at end of file
package pps.cloud.prediction.service.data.plant_predicted_power_data;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
......@@ -37,4 +38,8 @@ public class DynamicQueryPlantPredictedPowerInput {
@XText("结束时间")
private String endTime;
@NotNull(message = "缺少日期类型")
@XText("日期类型:0_长期;1_中短期")
private Integer dateType;
}
......@@ -4,6 +4,7 @@ import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 光伏预测Cloud模块
......@@ -29,9 +30,12 @@ public class DynamicQueryPlantPredictedPowerOutput {
@XText("预测功率")
private BigDecimal power;
@XText("是否满足")
private boolean meetFlag;
@XText("电量是否满足标识")
private Boolean batteryLowFlag;
@XText("可供电时长")
private int powerDuration;
@XText("创建时间")
private Date createTime;
}
......@@ -7,7 +7,9 @@ import pps.cloud.prediction.service.IPlantPredictedPowerCloudService;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import pps.core.prediction.entity.PlantPredictedPowerDataEnt;
import pps.core.prediction.entity.PlantPredictedPowerLongTermDataEnt;
import pps.core.prediction.mapper.PlantPredictedPowerDataMapper;
import pps.core.prediction.mapper.PlantPredictedPowerLongTermDataMapper;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
......@@ -40,25 +42,55 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower
String monthTime = input.getMonthTime();
String startTime = input.getStartTime();
String endTime = input.getEndTime();
PlantPredictedPowerDataMapper mapper = context.getBean(PlantPredictedPowerDataMapper.class);
List<PlantPredictedPowerDataEnt> list = mapper.selectList(
new QueryWrapper<PlantPredictedPowerDataEnt>()
.select("year_time",
"month_time",
"hour_time",
"min_time",
"AVG( power ) AS power")
.lambda()
.eq(StringUtils.isNotBlank(plantId), PlantPredictedPowerDataEnt::getPlantId, plantId)
.in(CollUtil.isNotEmpty(plantIds), PlantPredictedPowerDataEnt::getPlantId, plantIds)
.eq(StringUtils.isNotBlank(yearTime), PlantPredictedPowerDataEnt::getYearTime, yearTime)
.eq(StringUtils.isNotBlank(monthTime), PlantPredictedPowerDataEnt::getMonthTime, monthTime)
.between(!StringUtils.isAnyBlank(startTime, endTime), PlantPredictedPowerDataEnt::getDataDate, startTime, endTime)
.groupBy(PlantPredictedPowerDataEnt::getYearTime,
PlantPredictedPowerDataEnt::getMonthTime,
PlantPredictedPowerDataEnt::getHourTime,
PlantPredictedPowerDataEnt::getMinTime)
);
Integer dateType = input.getDateType();
List list = null;
switch (dateType) {
case 0:
PlantPredictedPowerLongTermDataMapper longTermDataMapper = context.getBean(PlantPredictedPowerLongTermDataMapper.class);
list = longTermDataMapper.selectList(
new QueryWrapper<PlantPredictedPowerLongTermDataEnt>()
.select("year_time",
"month_time",
"hour_time",
"min_time",
"AVG( power ) AS power",
"STR_TO_DATE( CONCAT( hour_time, ':', min_time ), '%H:%i:%s' ) AS create_time")
.lambda()
.eq(StringUtils.isNotBlank(plantId), PlantPredictedPowerLongTermDataEnt::getPlantId, plantId)
.in(CollUtil.isNotEmpty(plantIds), PlantPredictedPowerLongTermDataEnt::getPlantId, plantIds)
.eq(StringUtils.isNotBlank(yearTime), PlantPredictedPowerLongTermDataEnt::getYearTime, yearTime)
.eq(StringUtils.isNotBlank(monthTime), PlantPredictedPowerLongTermDataEnt::getMonthTime, monthTime)
.between(!StringUtils.isAnyBlank(startTime, endTime), PlantPredictedPowerLongTermDataEnt::getDataDate, startTime, endTime)
.groupBy(PlantPredictedPowerLongTermDataEnt::getYearTime,
PlantPredictedPowerLongTermDataEnt::getMonthTime,
PlantPredictedPowerLongTermDataEnt::getHourTime,
PlantPredictedPowerLongTermDataEnt::getMinTime)
);
break;
case 1:
PlantPredictedPowerDataMapper mapper = context.getBean(PlantPredictedPowerDataMapper.class);
list = mapper.selectList(
new QueryWrapper<PlantPredictedPowerDataEnt>()
.select("year_time",
"month_time",
"hour_time",
"min_time",
"AVG( power ) AS power",
"STR_TO_DATE( CONCAT( hour_time, ':', min_time ), '%H:%i:%s' ) AS create_time")
.lambda()
.eq(StringUtils.isNotBlank(plantId), PlantPredictedPowerDataEnt::getPlantId, plantId)
.in(CollUtil.isNotEmpty(plantIds), PlantPredictedPowerDataEnt::getPlantId, plantIds)
.eq(StringUtils.isNotBlank(yearTime), PlantPredictedPowerDataEnt::getYearTime, yearTime)
.eq(StringUtils.isNotBlank(monthTime), PlantPredictedPowerDataEnt::getMonthTime, monthTime)
.between(!StringUtils.isAnyBlank(startTime, endTime), PlantPredictedPowerDataEnt::getDataDate, startTime, endTime)
.groupBy(PlantPredictedPowerDataEnt::getYearTime,
PlantPredictedPowerDataEnt::getMonthTime,
PlantPredictedPowerDataEnt::getHourTime,
PlantPredictedPowerDataEnt::getMinTime)
);
break;
default:
}
List<DynamicQueryPlantPredictedPowerOutput> outputs;
if (CollUtil.isEmpty(list)) {
outputs = new ArrayList<>(0);
......
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