Commit c8807de3 authored by tianchao's avatar tianchao
parents 8234caa5 edd50cd5
...@@ -16,6 +16,11 @@ public class BusinessConstant { ...@@ -16,6 +16,11 @@ public class BusinessConstant {
*/ */
public static final String PARENT_OU_ID = "00000000-0000-0000-0000-000000000000"; public static final String PARENT_OU_ID = "00000000-0000-0000-0000-000000000000";
/**
* 线路标志id
*/
public static final String LINE_FLAG_ID = "000";
/** /**
* 光伏电站 * 光伏电站
*/ */
...@@ -113,7 +118,7 @@ public class BusinessConstant { ...@@ -113,7 +118,7 @@ public class BusinessConstant {
/** /**
* 一天结束时间 * 一天结束时间
*/ */
public static final String END_OF_DAY_TIME = "23:59"; public static final String END_OF_DAY_TIME = "24:00";
/** /**
* 一天开始时间 * 一天开始时间
......
...@@ -96,20 +96,6 @@ public class BaseUtils { ...@@ -96,20 +96,6 @@ public class BaseUtils {
return StringUtils.replace(UUID.randomUUID().toString(), "-", ""); return StringUtils.replace(UUID.randomUUID().toString(), "-", "");
} }
/**
* 获取月份执行周期
*
* @param date 日期
* @return {@link String}
*/
public static String getExecutionCycleForMonth(Date date) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(DateUtil.format(DateUtil.beginOfDay(date), BusinessConstant.DATE_FORMAT_DAY_C))
.append('-')
.append(DateUtil.format(DateUtil.endOfMonth(date), BusinessConstant.DATE_FORMAT_DAY_C));
return stringBuilder.toString();
}
/** /**
* 获取周执行周期 * 获取周执行周期
* *
...@@ -134,12 +120,27 @@ public class BaseUtils { ...@@ -134,12 +120,27 @@ public class BaseUtils {
*/ */
public static String getExecutionCycleForCalibration(Date date, int offset) { public static String getExecutionCycleForCalibration(Date date, int offset) {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(DateUtil.format(DateUtil.beginOfDay(date), BusinessConstant.DATE_FORMAT_DAY_C)) stringBuilder.append(DateUtil.format(date, BusinessConstant.DATE_FORMAT_DAY_C))
.append('-') .append('-')
.append(DateUtil.format(DateUtil.offsetDay(date, offset), BusinessConstant.DATE_FORMAT_DAY_C)); .append(DateUtil.format(DateUtil.offsetDay(date, offset), BusinessConstant.DATE_FORMAT_DAY_C));
return stringBuilder.toString(); return stringBuilder.toString();
} }
/**
* 获取校准执行周期
*
* @param startDate 开始日期
* @param endDate 结束日期
* @return {@link String}
*/
public static String getExecutionCycleForCalibration(Date startDate, Date endDate) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(DateUtil.format(startDate, BusinessConstant.DATE_FORMAT_DAY_C))
.append('-')
.append(DateUtil.format(endDate, BusinessConstant.DATE_FORMAT_DAY_C));
return stringBuilder.toString();
}
/** /**
* 获取时差分钟 * 获取时差分钟
* *
......
...@@ -18,4 +18,14 @@ public interface SystemAreaService { ...@@ -18,4 +18,14 @@ public interface SystemAreaService {
@XText("查询地区详细地址") @XText("查询地区详细地址")
XSingleResult<AddressInfoModel> getAddressInfo(XContext context, GetSysAreaInput input); XSingleResult<AddressInfoModel> getAddressInfo(XContext context, GetSysAreaInput input);
/**
* 地区Cloud服务-条件查询地区
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetSysAreaOutput}>
*/
@XText("地区Cloud服务-条件查询地区")
XSingleResult<GetSysAreaOutput> getSysAreaByParam(XContext context, GetSysAreaInput input);
} }
package pps.cloud.system.service.data; package pps.cloud.system.service.data;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 地区入参
*
* @author ZWT
* @date 2023/10/10
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetSysAreaInput { public class GetSysAreaInput {
private Integer id; private Integer id;
private String name; private String name;
...@@ -8,37 +24,4 @@ public class GetSysAreaInput { ...@@ -8,37 +24,4 @@ public class GetSysAreaInput {
private Integer parentId; private Integer parentId;
private Integer lev; private Integer lev;
public Integer getId() {
return this.id;
}
public void setId(Integer value) {
this.id = value;
}
public String getName() {
return this.name;
}
public void setName(String value) {
this.name = value;
}
public Integer getParentId() {
return this.parentId;
}
public void setParentId(Integer value) {
this.parentId = value;
}
public Integer getLev() {
return this.lev;
}
public void setLev(Integer value) {
this.lev = value;
}
} }
...@@ -155,4 +155,11 @@ public class SysOrganizationView implements Serializable { ...@@ -155,4 +155,11 @@ public class SysOrganizationView implements Serializable {
@XText("线路ID") @XText("线路ID")
@TableField(exist = false) @TableField(exist = false)
private String lineId; private String lineId;
/**
* 电网类型key
*/
@XText("电网类型key(字典获取)")
@TableField(exist = false)
private String gridTypeKey;
} }
package pps.core.system.service; package pps.core.system.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import pps.cloud.system.service.SystemAreaService; import pps.cloud.system.service.SystemAreaService;
import pps.cloud.system.service.data.AddressInfoModel; import pps.cloud.system.service.data.AddressInfoModel;
import pps.cloud.system.service.data.GetSysAreaInput; import pps.cloud.system.service.data.GetSysAreaInput;
...@@ -20,6 +20,7 @@ import xstartup.data.XSingleResult; ...@@ -20,6 +20,7 @@ import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiPost; import xstartup.feature.api.annotation.XApiPost;
import java.util.List; import java.util.List;
import java.util.Objects;
@XService @XService
public class SystemAreaServiceImpl implements SystemAreaService { public class SystemAreaServiceImpl implements SystemAreaService {
...@@ -40,33 +41,56 @@ public class SystemAreaServiceImpl implements SystemAreaService { ...@@ -40,33 +41,56 @@ public class SystemAreaServiceImpl implements SystemAreaService {
Integer sysAreaId = input.getId(); Integer sysAreaId = input.getId();
SysAreaMapper mapper = context.getBean(SysAreaMapper.class); SysAreaMapper mapper = context.getBean(SysAreaMapper.class);
AddressInfoModel model = new AddressInfoModel(); AddressInfoModel model = new AddressInfoModel();
QueryWrapper<SysAreaEnt> queryWrapper =new QueryWrapper<>(); QueryWrapper<SysAreaEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SysAreaEnt::getId,sysAreaId); queryWrapper.lambda().eq(SysAreaEnt::getId, sysAreaId);
SysAreaEnt sysAreaEnt = mapper.selectOne(queryWrapper); SysAreaEnt sysAreaEnt = mapper.selectOne(queryWrapper);
if(ObjectUtils.isNotEmpty(sysAreaEnt)){ if (ObjectUtils.isNotEmpty(sysAreaEnt)) {
if(sysAreaEnt.getLev()==0){ if (sysAreaEnt.getLev() == 0) {
model.setArea(String.valueOf(sysAreaEnt.getId())); model.setArea(String.valueOf(sysAreaEnt.getId()));
} }
while (!StringUtils.equals("0",String.valueOf(sysAreaEnt.getParentId()))){ while (!StringUtils.equals("0", String.valueOf(sysAreaEnt.getParentId()))) {
if(sysAreaEnt.getLev()==1){ if (sysAreaEnt.getLev() == 1) {
model.setProvince(String.valueOf(sysAreaEnt.getId())); model.setProvince(String.valueOf(sysAreaEnt.getId()));
} }
if(sysAreaEnt.getLev()==2){ if (sysAreaEnt.getLev() == 2) {
model.setCity(String.valueOf(sysAreaEnt.getId())); model.setCity(String.valueOf(sysAreaEnt.getId()));
} }
if(sysAreaEnt.getLev()==3){ if (sysAreaEnt.getLev() == 3) {
model.setCounty(String.valueOf(sysAreaEnt.getId())); model.setCounty(String.valueOf(sysAreaEnt.getId()));
} }
QueryWrapper<SysAreaEnt> query =new QueryWrapper<>(); QueryWrapper<SysAreaEnt> query = new QueryWrapper<>();
query.lambda().eq(SysAreaEnt::getId,sysAreaEnt.getParentId()); query.lambda().eq(SysAreaEnt::getId, sysAreaEnt.getParentId());
sysAreaEnt = mapper.selectOne(query); sysAreaEnt = mapper.selectOne(query);
if(sysAreaEnt.getLev()==0){ if (sysAreaEnt.getLev() == 0) {
model.setArea(String.valueOf(sysAreaEnt.getId())); model.setArea(String.valueOf(sysAreaEnt.getId()));
} }
} }
} }
return XSingleResult.success(model); return XSingleResult.success(model);
} }
/**
* 地区Cloud服务-条件查询地区
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetSysAreaOutput}>
*/
@XApiPost
@Override
public XSingleResult<GetSysAreaOutput> getSysAreaByParam(XContext context, GetSysAreaInput input) {
Integer id = input.getId();
String name = input.getName();
Integer parentId = input.getParentId();
SysAreaMapper mapper = context.getBean(SysAreaMapper.class);
SysAreaEnt sysAreaEnt = mapper.selectOne(new LambdaQueryWrapper<SysAreaEnt>()
.eq(Objects.nonNull(id), SysAreaEnt::getId, id)
.eq(Objects.nonNull(parentId), SysAreaEnt::getParentId, parentId)
.eq(StringUtils.isNotEmpty(name), SysAreaEnt::getName, name)
.last("LIMIT 1")
);
return XSingleResult.success(XCopyUtils.copyNewObject(sysAreaEnt, GetSysAreaOutput.class));
}
} }
...@@ -23,4 +23,10 @@ public class DynamicQuerySysOrganizationOutput { ...@@ -23,4 +23,10 @@ public class DynamicQuerySysOrganizationOutput {
@XText("线路ID") @XText("线路ID")
private String lineId; private String lineId;
/**
* 电网类型key
*/
@XText("电网类型key(字典获取)")
private String gridTypeKey;
} }
...@@ -558,6 +558,7 @@ ...@@ -558,6 +558,7 @@
<resultMap id="ExtendResultMap" type="pps.core.system.entity.SysOrganizationView" extends="BaseResultMap"> <resultMap id="ExtendResultMap" type="pps.core.system.entity.SysOrganizationView" extends="BaseResultMap">
<result column="line_id" property="lineId" jdbcType="VARCHAR"/> <result column="line_id" property="lineId" jdbcType="VARCHAR"/>
<result column="grid_type_key" property="gridTypeKey" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<select id="selectLineList" parameterType="pps.core.system.entity.SysOrganizationView" <select id="selectLineList" parameterType="pps.core.system.entity.SysOrganizationView"
...@@ -577,7 +578,8 @@ ...@@ -577,7 +578,8 @@
(SELECT o.id, (SELECT o.id,
o.ou_name AS ou_name, o.ou_name AS ou_name,
'' AS line_id, '' AS line_id,
'ORG' AS ou_level 'ORG' AS ou_level,
'' AS grid_type_key
FROM sys_organization o FROM sys_organization o
LEFT JOIN sys_organization_rel r ON o.id = r.ou_id LEFT JOIN sys_organization_rel r ON o.id = r.ou_id
WHERE r.parent_ou_id = #{id} WHERE r.parent_ou_id = #{id}
...@@ -585,7 +587,11 @@ ...@@ -585,7 +587,11 @@
AND o.is_deleted = 1 AND o.is_deleted = 1
ORDER BY r.sort) ORDER BY r.sort)
UNION ALL UNION ALL
(SELECT ou_id AS id, line_name AS ou_name, id AS line_id, 'LINE' AS ou_level (SELECT ou_id AS id,
line_name AS ou_name,
id AS line_id,
'LINE' AS ou_level,
grid_type_key
FROM base_power_line FROM base_power_line
WHERE ou_id = #{id} WHERE ou_id = #{id}
AND is_deleted = 1 AND is_deleted = 1
......
...@@ -8,6 +8,7 @@ import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput; ...@@ -8,6 +8,7 @@ import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput; import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput; import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput;
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageInput; import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageInput;
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageOutput;
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageViewOutput; import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput; import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput; import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
...@@ -82,5 +83,16 @@ public interface IBasePowerLineCloudService { ...@@ -82,5 +83,16 @@ public interface IBasePowerLineCloudService {
*/ */
@XText("输电线路配置Cloud模块--条件查询线路关联储能设备参数平均值") @XText("输电线路配置Cloud模块--条件查询线路关联储能设备参数平均值")
@XApiPost @XApiPost
XListResult<DynamicQueryBasePowerLineStorageViewOutput> queryPowerLineStorageListByLineIds(XContext context, DynamicQueryBasePowerLineStorageInput input); XListResult<DynamicQueryBasePowerLineStorageViewOutput> queryPowerLineStorageAvgByLineIds(XContext context, DynamicQueryBasePowerLineStorageInput input);
/**
* 输电线路配置Cloud模块--条件查询线路关联储能设备信息
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineStorageOutput}>
*/
@XText("输电线路配置Cloud模块--条件查询线路关联储能设备信息")
@XApiPost
XListResult<DynamicQueryBasePowerLineStorageOutput> queryPowerLineStorageListByLineIds(XContext context, DynamicQueryBasePowerLineStorageInput input);
} }
package pps.cloud.base.service.data.base_power_line_storage;
import lombok.Data;
import xstartup.annotation.XText;
/**
* 输电线路储能配置
*
* @author ZWT
* @date 2023/08/25
*/
@Data
public class DynamicQueryBasePowerLineStorageOutput {
@XText("线路ID")
private String lineId;
@XText("储能设备ID")
private String storageId;
}
...@@ -50,7 +50,24 @@ public class BasePhotovoltaicPlantEnt extends BaseModel implements Serializable ...@@ -50,7 +50,24 @@ public class BasePhotovoltaicPlantEnt extends BaseModel implements Serializable
@XText("组织机构name") @XText("组织机构name")
@TableField @TableField
private String ouName; private String ouName;
@XText("光伏设备规格型号name(字典获取)") @XText("光伏设备规格型号name(字典获取)")
@TableField @TableField
private String photovoltaicModelName; private String photovoltaicModelName;
@XText("经度(°)")
@TableField
private BigDecimal longitude;
@XText("纬度(°)")
@TableField
private BigDecimal latitude;
@XText("高程(m)")
@TableField
private BigDecimal elevation;
@XText("地区编码")
@TableField
private Integer areaCode;
} }
...@@ -48,6 +48,7 @@ public class BasePhotovoltaicPlantView extends BaseModel implements Serializable ...@@ -48,6 +48,7 @@ public class BasePhotovoltaicPlantView extends BaseModel implements Serializable
@XText("组织机构name") @XText("组织机构name")
@TableField @TableField
private String ouName; private String ouName;
@XText("光伏设备规格型号name(字典获取)") @XText("光伏设备规格型号name(字典获取)")
@TableField @TableField
private String photovoltaicModelName; private String photovoltaicModelName;
...@@ -59,4 +60,20 @@ public class BasePhotovoltaicPlantView extends BaseModel implements Serializable ...@@ -59,4 +60,20 @@ public class BasePhotovoltaicPlantView extends BaseModel implements Serializable
@XText("所属省份") @XText("所属省份")
@TableField(exist = false) @TableField(exist = false)
private String provinceCode; private String provinceCode;
@XText("经度(°)")
@TableField
private BigDecimal longitude;
@XText("纬度(°)")
@TableField
private BigDecimal latitude;
@XText("高程(m)")
@TableField
private BigDecimal elevation;
@XText("地区编码")
@TableField
private Integer areaCode;
} }
...@@ -5,9 +5,17 @@ import pps.core.base.entity.BasePhotovoltaicPlantView; ...@@ -5,9 +5,17 @@ import pps.core.base.entity.BasePhotovoltaicPlantView;
import java.util.List; import java.util.List;
@Repository(value="pps.core.base.mapper.BasePhotovoltaicPlantViewMapper") /**
* 光伏电站
*
* @author ZWT
* @date 2023/10/10
*/
@Repository(value = "pps.core.base.mapper.BasePhotovoltaicPlantViewMapper")
public interface BasePhotovoltaicPlantViewMapper { public interface BasePhotovoltaicPlantViewMapper {
BasePhotovoltaicPlantView selectOne(BasePhotovoltaicPlantView record); BasePhotovoltaicPlantView selectOne(BasePhotovoltaicPlantView record);
List<BasePhotovoltaicPlantView> selectList(BasePhotovoltaicPlantView record); List<BasePhotovoltaicPlantView> selectList(BasePhotovoltaicPlantView record);
List<BasePhotovoltaicPlantView> selectPlantDetailList(BasePhotovoltaicPlantView record); List<BasePhotovoltaicPlantView> selectPlantDetailList(BasePhotovoltaicPlantView record);
} }
...@@ -131,7 +131,7 @@ public class BaseDieselGeneratorService { ...@@ -131,7 +131,7 @@ public class BaseDieselGeneratorService {
QueryWrapper<BaseDieselGeneratorEnt> queryWrapper = new QueryWrapper<>(); QueryWrapper<BaseDieselGeneratorEnt> queryWrapper = new QueryWrapper<>();
if (StringUtils.isNotEmpty(input.getLineId())) { if (StringUtils.isNotEmpty(input.getLineId())) {
queryWrapper.lambda() queryWrapper.lambda()
.notExists("SELECT 1 FROM base_power_line_diesel w WHERE base_diesel_generator.id = w.diesel_id AND w.is_deleted = 1 AND w.line_id <> {0}", input.getLineId()) .notExists(!StringUtils.equals(BusinessConstant.LINE_FLAG_ID, input.getLineId()), "SELECT 1 FROM base_power_line_diesel w WHERE base_diesel_generator.id = w.diesel_id AND w.is_deleted = 1 AND w.line_id <> {0}", input.getLineId())
.eq(BaseDieselGeneratorEnt::getOuId, input.getOuId()); .eq(BaseDieselGeneratorEnt::getOuId, input.getOuId());
} else { } else {
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId()); List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
......
...@@ -131,7 +131,7 @@ public class BaseEnergyStorageDeviceService { ...@@ -131,7 +131,7 @@ public class BaseEnergyStorageDeviceService {
QueryWrapper<BaseEnergyStorageDeviceEnt> queryWrapper = new QueryWrapper<>(); QueryWrapper<BaseEnergyStorageDeviceEnt> queryWrapper = new QueryWrapper<>();
if (StringUtils.isNotEmpty(input.getLineId())) { if (StringUtils.isNotEmpty(input.getLineId())) {
queryWrapper.lambda() 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 AND w.line_id <> {0}", input.getLineId()) .notExists(!StringUtils.equals(BusinessConstant.LINE_FLAG_ID, input.getLineId()), "SELECT 1 FROM base_power_line_storage w WHERE base_energy_storage_device.id = w.storage_id AND w.is_deleted = 1 AND w.line_id <> {0}", input.getLineId())
.eq(BaseEnergyStorageDeviceEnt::getOuId, input.getOuId()); .eq(BaseEnergyStorageDeviceEnt::getOuId, input.getOuId());
} else { } else {
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId()); List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
......
...@@ -5,6 +5,9 @@ import cn.hutool.core.util.StrUtil; ...@@ -5,6 +5,9 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import pps.cloud.system.service.SystemAreaService;
import pps.cloud.system.service.data.GetSysAreaInput;
import pps.cloud.system.service.data.GetSysAreaOutput;
import pps.core.base.entity.BasePhotovoltaicPlantEnt; import pps.core.base.entity.BasePhotovoltaicPlantEnt;
import pps.core.base.entity.BasePowerLineEnt; import pps.core.base.entity.BasePowerLineEnt;
import pps.core.base.entity.BasePowerLinePlantEnt; import pps.core.base.entity.BasePowerLinePlantEnt;
...@@ -39,6 +42,7 @@ import xstartup.helper.XTransactionHelper; ...@@ -39,6 +42,7 @@ import xstartup.helper.XTransactionHelper;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
/** /**
...@@ -50,33 +54,53 @@ import java.util.Objects; ...@@ -50,33 +54,53 @@ import java.util.Objects;
@XService @XService
public class BasePhotovoltaicPlantService { public class BasePhotovoltaicPlantService {
@XText("新增") /**
* 光伏电站模块--新增
* POST /base/base-photovoltaic-plant/create-base-photovoltaic-plant
* 接口ID:105466278
* 接口地址:https://app.apifox.com/project/3196988/apis/api-105466278
*
* @param context 上下文
* @param input 输入
* @return {@link XServiceResult}
*/
@XText("光伏电站模块--新增")
@XApiAnonymous @XApiAnonymous
@XApiPost @XApiPost
public XServiceResult createBasePhotovoltaicPlant(XContext context, CreateBasePhotovoltaicPlantInput input) { public XServiceResult createBasePhotovoltaicPlant(XContext context, CreateBasePhotovoltaicPlantInput input) {
PpsUserSession session = context.getSession(PpsUserSession.class);
BasePhotovoltaicPlantEnt entity = XCopyUtils.copyNewObject(input, BasePhotovoltaicPlantEnt.class);
BaseUtils.setBaseModelDefault(entity, session);
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class); BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class);
BasePhotovoltaicPlantEnt entity = XCopyUtils.copyNewObject(input, BasePhotovoltaicPlantEnt.class);
PpsUserSession session = context.getSession(PpsUserSession.class);
BaseUtils.setBaseModelDefault(entity, session);
mapper.insert(entity); mapper.insert(entity);
return XServiceResult.OK; return XServiceResult.OK;
}); });
} }
@XText("更新") /**
* 光伏电站模块--修改
* POST /base/base-photovoltaic-plant/update-base-photovoltaic-plant
* 接口ID:105466279
* 接口地址:https://app.apifox.com/project/3196988/apis/api-105466279
*
* @param context 上下文
* @param input 输入
* @return {@link XServiceResult}
*/
@XText("光伏电站模块--修改")
@XApiAnonymous @XApiAnonymous
@XApiPost @XApiPost
public XServiceResult updateBasePhotovoltaicPlant(XContext context, UpdateBasePhotovoltaicPlantInput input) { public XServiceResult updateBasePhotovoltaicPlant(XContext context, UpdateBasePhotovoltaicPlantInput input) {
PpsUserSession session = context.getSession(PpsUserSession.class);
BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class);
BasePhotovoltaicPlantEnt entity = this.selectOneByPlantId(input.getId(), mapper);
if (Objects.isNull(entity)) {
return XServiceResult.error(context, XError.NotFound);
}
XCopyUtils.copyObject(input, entity);
BaseUtils.setBaseModelDefault(entity, session);
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class);
BasePhotovoltaicPlantEnt entity = this.selectOneByPlantId(input.getId(), mapper);
if (Objects.isNull(entity)) {
return XServiceResult.error(context, XError.NotFound);
}
XCopyUtils.copyObject(input, entity);
PpsUserSession session = context.getSession(PpsUserSession.class);
BaseUtils.setBaseModelDefault(entity, session);
mapper.updateById(entity); mapper.updateById(entity);
return XServiceResult.OK; return XServiceResult.OK;
}); });
...@@ -106,7 +130,17 @@ public class BasePhotovoltaicPlantService { ...@@ -106,7 +130,17 @@ public class BasePhotovoltaicPlantService {
}); });
} }
@XText("根据id获取详情") /**
* 光伏电站模块--详情
* GET /base/base-photovoltaic-plant/get-base-photovoltaic-plant
* 接口ID:105466276
* 接口地址:https://app.apifox.com/project/3196988/apis/api-105466276
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetBasePhotovoltaicPlantOutput}>
*/
@XText("光伏电站模块--详情")
@XApiAnonymous @XApiAnonymous
@XApiGet @XApiGet
public XSingleResult<GetBasePhotovoltaicPlantOutput> getBasePhotovoltaicPlant(XContext context, GetBasePhotovoltaicPlantInput input) { public XSingleResult<GetBasePhotovoltaicPlantOutput> getBasePhotovoltaicPlant(XContext context, GetBasePhotovoltaicPlantInput input) {
...@@ -124,11 +158,16 @@ public class BasePhotovoltaicPlantService { ...@@ -124,11 +158,16 @@ public class BasePhotovoltaicPlantService {
if (Objects.nonNull(organizationView)) { if (Objects.nonNull(organizationView)) {
output.setProvince(organizationView.getProvinceName()); output.setProvince(organizationView.getProvinceName());
} }
output.setAreaName(Optional.ofNullable(this.getSysAreaInfo(context, GetSysAreaInput.builder()
.id(entity.getAreaCode())
.build()))
.map(GetSysAreaOutput::getName)
.orElse(null));
return XSingleResult.success(output); return XSingleResult.success(output);
} }
/** /**
* 分页查询 * 光伏电站模块--分页查询
* GET /base/base-photovoltaic-plant/query-base-photovoltaic-plant * GET /base/base-photovoltaic-plant/query-base-photovoltaic-plant
* 接口ID:105466277 * 接口ID:105466277
* 接口地址:https://app.apifox.com/project/3196988/apis/api-105466277 * 接口地址:https://app.apifox.com/project/3196988/apis/api-105466277
...@@ -137,7 +176,7 @@ public class BasePhotovoltaicPlantService { ...@@ -137,7 +176,7 @@ public class BasePhotovoltaicPlantService {
* @param input 输入 * @param input 输入
* @return {@link XPageResult}<{@link QueryBasePhotovoltaicPlantOutput}> * @return {@link XPageResult}<{@link QueryBasePhotovoltaicPlantOutput}>
*/ */
@XText("分页查询") @XText("光伏电站模块--分页查询")
@XApiAnonymous @XApiAnonymous
@XApiGet @XApiGet
public XPageResult<QueryBasePhotovoltaicPlantOutput> queryBasePhotovoltaicPlant(XContext context, QueryBasePhotovoltaicPlantInput input) { public XPageResult<QueryBasePhotovoltaicPlantOutput> queryBasePhotovoltaicPlant(XContext context, QueryBasePhotovoltaicPlantInput input) {
...@@ -146,7 +185,7 @@ public class BasePhotovoltaicPlantService { ...@@ -146,7 +185,7 @@ public class BasePhotovoltaicPlantService {
QueryWrapper<BasePhotovoltaicPlantEnt> queryWrapper = new QueryWrapper<>(); QueryWrapper<BasePhotovoltaicPlantEnt> queryWrapper = new QueryWrapper<>();
if (StringUtils.isNotEmpty(input.getLineId())) { if (StringUtils.isNotEmpty(input.getLineId())) {
queryWrapper.lambda() queryWrapper.lambda()
.notExists("SELECT 1 FROM base_power_line_plant w WHERE base_photovoltaic_plant.id = w.plant_id AND w.is_deleted = 1 AND w.line_id <> {0}", input.getLineId()) .notExists(!StringUtils.equals(BusinessConstant.LINE_FLAG_ID, input.getLineId()), "SELECT 1 FROM base_power_line_plant w WHERE base_photovoltaic_plant.id = w.plant_id AND w.is_deleted = 1 AND w.line_id <> {0}", input.getLineId())
.eq(BasePhotovoltaicPlantEnt::getOuId, input.getOuId()); .eq(BasePhotovoltaicPlantEnt::getOuId, input.getOuId());
} else { } else {
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId()); List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
...@@ -230,4 +269,18 @@ public class BasePhotovoltaicPlantService { ...@@ -230,4 +269,18 @@ public class BasePhotovoltaicPlantService {
return mapper.selectOne(new LambdaQueryWrapper<BasePhotovoltaicPlantEnt>() return mapper.selectOne(new LambdaQueryWrapper<BasePhotovoltaicPlantEnt>()
.eq(BaseModel::getId, plantId)); .eq(BaseModel::getId, plantId));
} }
/**
* 获取系统区域信息
*
* @param context 上下文
* @param input 输入
* @return {@link GetSysAreaOutput}
*/
private GetSysAreaOutput getSysAreaInfo(XContext context, GetSysAreaInput input) {
SystemAreaService systemAreaService = context.getBean(SystemAreaService.class);
XSingleResult<GetSysAreaOutput> singleResult = systemAreaService.getSysAreaByParam(context, input);
singleResult.throwIfFail();
return singleResult.getResult();
}
} }
...@@ -11,17 +11,12 @@ import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput; ...@@ -11,17 +11,12 @@ import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput; import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput; import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput;
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageInput; import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageInput;
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageOutput;
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageViewOutput; import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput; import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput; import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
import pps.core.base.entity.BasePowerLineEnt; import pps.core.base.entity.*;
import pps.core.base.entity.BasePowerLinePlantEnt; import pps.core.base.mapper.*;
import pps.core.base.entity.BasePowerLineStorageView;
import pps.core.base.entity.BasePowerLineWellheadView;
import pps.core.base.mapper.BasePowerLineMapper;
import pps.core.base.mapper.BasePowerLinePlantMapper;
import pps.core.base.mapper.BasePowerLineStorageViewMapper;
import pps.core.base.mapper.BasePowerLineWellheadViewMapper;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import xstartup.annotation.XService; import xstartup.annotation.XService;
...@@ -30,7 +25,6 @@ import xstartup.base.util.XCopyUtils; ...@@ -30,7 +25,6 @@ import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult; import xstartup.data.XListResult;
import xstartup.data.XSingleResult; import xstartup.data.XSingleResult;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
...@@ -56,8 +50,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -56,8 +50,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
BasePowerLineEnt entity = mapper.selectOne(new LambdaQueryWrapper<BasePowerLineEnt>() BasePowerLineEnt entity = mapper.selectOne(new LambdaQueryWrapper<BasePowerLineEnt>()
.eq(BaseModel::getId, input.getId()) .eq(BaseModel::getId, input.getId())
); );
GetBasePowerLineViewOutput output = XCopyUtils.copyNewObject(entity, GetBasePowerLineViewOutput.class); return XSingleResult.success(XCopyUtils.copyNewObject(entity, GetBasePowerLineViewOutput.class));
return XSingleResult.success(output);
} }
/** /**
...@@ -90,8 +83,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -90,8 +83,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
.eq(StringUtils.isNotBlank(strategyId), BasePowerLineEnt::getStrategyId, strategyId) .eq(StringUtils.isNotBlank(strategyId), BasePowerLineEnt::getStrategyId, strategyId)
.orderByDesc(BaseModel::getModifyTime) .orderByDesc(BaseModel::getModifyTime)
); );
List<DynamicQueryBasePowerLineOutput> lineOutputList = XCopyUtils.copyNewList(selectList, DynamicQueryBasePowerLineOutput.class); return XListResult.success(XCopyUtils.copyNewList(selectList, DynamicQueryBasePowerLineOutput.class));
return XListResult.success(lineOutputList);
} }
/** /**
...@@ -110,13 +102,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -110,13 +102,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
.wellheadIds(input.getWellheadIds()) .wellheadIds(input.getWellheadIds())
.build() .build()
); );
List<DynamicQueryBasePowerLineWellheadViewOutput> outputs; return XListResult.success(XCopyUtils.copyNewList(wellheadViews, DynamicQueryBasePowerLineWellheadViewOutput.class));
if (CollUtil.isEmpty(wellheadViews)) {
outputs = new ArrayList<>(0);
} else {
outputs = XCopyUtils.copyNewList(wellheadViews, DynamicQueryBasePowerLineWellheadViewOutput.class);
}
return XListResult.success(outputs);
} }
/** /**
...@@ -137,16 +123,10 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -137,16 +123,10 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
.eq(StringUtils.isNotBlank(plantId), BasePowerLinePlantEnt::getPlantId, plantId) .eq(StringUtils.isNotBlank(plantId), BasePowerLinePlantEnt::getPlantId, plantId)
.in(CollUtil.isNotEmpty(lineIds), BasePowerLinePlantEnt::getLineId, lineIds) .in(CollUtil.isNotEmpty(lineIds), BasePowerLinePlantEnt::getLineId, lineIds)
); );
List<DynamicQueryBasePowerLinePlantOutput> outputs; return XListResult.success(XCopyUtils.copyNewList(
if (CollUtil.isEmpty(list)) { list,
outputs = new ArrayList<>(0); DynamicQueryBasePowerLinePlantOutput.class
} else { ));
outputs = XCopyUtils.copyNewList(
list,
DynamicQueryBasePowerLinePlantOutput.class
);
}
return XListResult.success(outputs);
} }
/** /**
...@@ -157,18 +137,32 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -157,18 +137,32 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineStorageViewOutput}> * @return {@link XListResult}<{@link DynamicQueryBasePowerLineStorageViewOutput}>
*/ */
@Override @Override
public XListResult<DynamicQueryBasePowerLineStorageViewOutput> queryPowerLineStorageListByLineIds(XContext context, DynamicQueryBasePowerLineStorageInput input) { public XListResult<DynamicQueryBasePowerLineStorageViewOutput> queryPowerLineStorageAvgByLineIds(XContext context, DynamicQueryBasePowerLineStorageInput input) {
BasePowerLineStorageViewMapper mapper = context.getBean(BasePowerLineStorageViewMapper.class); BasePowerLineStorageViewMapper mapper = context.getBean(BasePowerLineStorageViewMapper.class);
List<BasePowerLineStorageView> list = mapper.selectStorageAverageByLineIds(input.getLineIds()); List<BasePowerLineStorageView> list = mapper.selectStorageAverageByLineIds(input.getLineIds());
List<DynamicQueryBasePowerLineStorageViewOutput> outputs; return XListResult.success(XCopyUtils.copyNewList(
if (CollUtil.isEmpty(list)) { list,
outputs = new ArrayList<>(0); DynamicQueryBasePowerLineStorageViewOutput.class
} else { ));
outputs = XCopyUtils.copyNewList( }
list,
DynamicQueryBasePowerLineStorageViewOutput.class /**
); * 输电线路配置Cloud模块--条件查询线路关联储能设备信息
} *
return XListResult.success(outputs); * @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineStorageOutput}>
*/
@Override
public XListResult<DynamicQueryBasePowerLineStorageOutput> queryPowerLineStorageListByLineIds(XContext context, DynamicQueryBasePowerLineStorageInput input) {
BasePowerLineStorageMapper storageMapper = context.getBean(BasePowerLineStorageMapper.class);
List<BasePowerLineStorageEnt> list = storageMapper.selectList(new LambdaQueryWrapper<BasePowerLineStorageEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.in(BasePowerLineStorageEnt::getLineId, input.getLineIds())
);
return XListResult.success(XCopyUtils.copyNewList(
list,
DynamicQueryBasePowerLineStorageOutput.class
));
} }
} }
\ No newline at end of file
package pps.core.base.service; package pps.core.base.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
...@@ -187,41 +186,43 @@ public class BasePriceStrategyService { ...@@ -187,41 +186,43 @@ public class BasePriceStrategyService {
public XSingleResult<GetBasePriceStrategyOutput> getBasePriceStrategy(XContext context, GetBasePriceStrategyInput input) { public XSingleResult<GetBasePriceStrategyOutput> getBasePriceStrategy(XContext context, GetBasePriceStrategyInput input) {
BasePriceStrategyMapper mapper = context.getBean(BasePriceStrategyMapper.class); BasePriceStrategyMapper mapper = context.getBean(BasePriceStrategyMapper.class);
String strategyId = input.getId(); String strategyId = input.getId();
QueryWrapper<BasePriceStrategyEnt> queryWrapper = new QueryWrapper<>(); BasePriceStrategyEnt entity = mapper.selectOne(new LambdaQueryWrapper<BasePriceStrategyEnt>()
queryWrapper.lambda()
.select(BasePriceStrategyEnt::getId, .select(BasePriceStrategyEnt::getId,
BasePriceStrategyEnt::getPolicyName, BasePriceStrategyEnt::getPolicyName,
BasePriceStrategyEnt::getAreaCode, BasePriceStrategyEnt::getAreaCode,
BasePriceStrategyEnt::getStrategyYear, BasePriceStrategyEnt::getStrategyYear,
BasePriceStrategyEnt::getIsFixedPrice, BasePriceStrategyEnt::getIsFixedPrice,
BasePriceStrategyEnt::getFixedElectricityPrice) BasePriceStrategyEnt::getFixedElectricityPrice)
.eq(BasePriceStrategyEnt::getId, strategyId); .eq(BasePriceStrategyEnt::getId, strategyId)
BasePriceStrategyEnt entity = mapper.selectOne(queryWrapper); .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
);
if (Objects.isNull(entity)) { if (Objects.isNull(entity)) {
return XSingleResult.error(context, XError.NotFound); return XSingleResult.error(context, XError.NotFound);
} }
GetBasePriceStrategyOutput output = XCopyUtils.copyNewObject(entity, GetBasePriceStrategyOutput.class); GetBasePriceStrategyOutput output = XCopyUtils.copyNewObject(entity, GetBasePriceStrategyOutput.class);
//查月份 //查月份
BasePriceStrategyMonthMapper monthMapper = context.getBean(BasePriceStrategyMonthMapper.class); BasePriceStrategyMonthMapper monthMapper = context.getBean(BasePriceStrategyMonthMapper.class);
List<BasePriceStrategyMonthEnt> monthEntList = monthMapper.selectList(new QueryWrapper<BasePriceStrategyMonthEnt>() List<BasePriceStrategyMonthEnt> monthEntList = monthMapper.selectList(new LambdaQueryWrapper<BasePriceStrategyMonthEnt>()
.lambda()
.select(BasePriceStrategyMonthEnt::getId, BasePriceStrategyMonthEnt::getStrategyMonth) .select(BasePriceStrategyMonthEnt::getId, BasePriceStrategyMonthEnt::getStrategyMonth)
.eq(BasePriceStrategyMonthEnt::getStrategyId, strategyId) .eq(BasePriceStrategyMonthEnt::getStrategyId, strategyId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.last(" ORDER BY strategy_month + 0 ") .last(" ORDER BY strategy_month + 0 ")
); );
if (CollUtil.isNotEmpty(monthEntList)) { if (CollUtil.isNotEmpty(monthEntList)) {
List<GetBasePriceStrategyMonthOutput> months = XCopyUtils.copyNewList(monthEntList, GetBasePriceStrategyMonthOutput.class); List<GetBasePriceStrategyMonthOutput> months = XCopyUtils.copyNewList(monthEntList, GetBasePriceStrategyMonthOutput.class);
//查明细 //查明细
BasePriceStrategyDetailMapper detailMapper = context.getBean(BasePriceStrategyDetailMapper.class); BasePriceStrategyDetailMapper detailMapper = context.getBean(BasePriceStrategyDetailMapper.class);
List<BasePriceStrategyDetailEnt> detailEntList = detailMapper.selectList(new QueryWrapper<BasePriceStrategyDetailEnt>() List<BasePriceStrategyDetailEnt> detailEntList = detailMapper.selectList(new LambdaQueryWrapper<BasePriceStrategyDetailEnt>()
.lambda()
.select(BasePriceStrategyDetailEnt::getStrategyMonth, .select(BasePriceStrategyDetailEnt::getStrategyMonth,
BasePriceStrategyDetailEnt::getPeriodTypeKey, BasePriceStrategyDetailEnt::getPeriodTypeKey,
BasePriceStrategyDetailEnt::getStartTime, BasePriceStrategyDetailEnt::getStartTime,
BasePriceStrategyDetailEnt::getEndTime, BasePriceStrategyDetailEnt::getEndTime,
BasePriceStrategyDetailEnt::getElectrovalence, BasePriceStrategyDetailEnt::getElectrovalence,
BasePriceStrategyDetailEnt::getInternalSettlementPrice) BasePriceStrategyDetailEnt::getInternalSettlementPrice)
.eq(BasePriceStrategyDetailEnt::getStrategyId, strategyId)); .eq(BasePriceStrategyDetailEnt::getStrategyId, strategyId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.orderByAsc(BasePriceStrategyDetailEnt::getStartTime)
);
if (CollUtil.isNotEmpty(detailEntList)) { if (CollUtil.isNotEmpty(detailEntList)) {
Map<String, String> dictMap = ServiceUtil.getDictMap(context, BusinessConstant.TIME_FRAME); Map<String, String> dictMap = ServiceUtil.getDictMap(context, BusinessConstant.TIME_FRAME);
List<GetBasePriceStrategyDetailOutput> detailOutputs = XCopyUtils.copyNewList(detailEntList, GetBasePriceStrategyDetailOutput.class); List<GetBasePriceStrategyDetailOutput> detailOutputs = XCopyUtils.copyNewList(detailEntList, GetBasePriceStrategyDetailOutput.class);
......
...@@ -134,7 +134,7 @@ public class BaseWellheadService { ...@@ -134,7 +134,7 @@ public class BaseWellheadService {
QueryWrapper<BaseWellheadEnt> queryWrapper = new QueryWrapper<>(); QueryWrapper<BaseWellheadEnt> queryWrapper = new QueryWrapper<>();
if (StringUtils.isNotEmpty(input.getLineId())) { if (StringUtils.isNotEmpty(input.getLineId())) {
queryWrapper.lambda() queryWrapper.lambda()
.notExists("SELECT 1 FROM base_power_line_wellhead w WHERE base_wellhead.id = w.wellhead_id AND w.is_deleted = 1 AND w.line_id <> {0}", input.getLineId()) .notExists(!StringUtils.equals(BusinessConstant.LINE_FLAG_ID, input.getLineId()), "SELECT 1 FROM base_power_line_wellhead w WHERE base_wellhead.id = w.wellhead_id AND w.is_deleted = 1 AND w.line_id <> {0}", input.getLineId())
.eq(BaseWellheadEnt::getOuId, input.getOuId()); .eq(BaseWellheadEnt::getOuId, input.getOuId());
} else { } else {
List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId()); List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
......
...@@ -5,6 +5,12 @@ import xstartup.annotation.XText; ...@@ -5,6 +5,12 @@ import xstartup.annotation.XText;
import java.math.BigDecimal; import java.math.BigDecimal;
/**
* 光伏电站
*
* @author ZWT
* @date 2023/10/10
*/
@Data @Data
public class CreateBasePhotovoltaicPlantInput { public class CreateBasePhotovoltaicPlantInput {
...@@ -28,9 +34,22 @@ public class CreateBasePhotovoltaicPlantInput { ...@@ -28,9 +34,22 @@ public class CreateBasePhotovoltaicPlantInput {
@XText("阵列朝向") @XText("阵列朝向")
private BigDecimal arrayOrientation; private BigDecimal arrayOrientation;
@XText("组织机构name") @XText("组织机构name")
private String ouName; private String ouName;
@XText("光伏设备规格型号name(字典获取)") @XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName; private String photovoltaicModelName;
@XText("经度(°)")
private BigDecimal longitude;
@XText("纬度(°)")
private BigDecimal latitude;
@XText("高程(m)")
private BigDecimal elevation;
@XText("地区编码")
private Integer areaCode;
} }
package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class CreateBasePhotovoltaicPlantOutput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
...@@ -2,9 +2,10 @@ package pps.core.base.service.data.base_photovoltaic_plant; ...@@ -2,9 +2,10 @@ package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data; import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
@Data @Data
public class DeleteBasePhotovoltaicPlantInput { public class DeleteBasePhotovoltaicPlantInput {
@XText("ID") @XText("ID")
private String id; private String id;
}
} \ No newline at end of file
package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class DeleteBasePhotovoltaicPlantOutput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class DynamicQueryBasePhotovoltaicPlantInput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class DynamicQueryBasePhotovoltaicPlantOutput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class DynamicQueryBasePhotovoltaicPlantViewOutput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
...@@ -2,11 +2,10 @@ package pps.core.base.service.data.base_photovoltaic_plant; ...@@ -2,11 +2,10 @@ package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data; import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
@Data @Data
public class GetBasePhotovoltaicPlantInput { public class GetBasePhotovoltaicPlantInput {
@XText("ID") @XText("ID")
private String id; private String id;
}
\ No newline at end of file
}
...@@ -4,34 +4,19 @@ import lombok.Data; ...@@ -4,34 +4,19 @@ import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/**
* 光伏电站
*
* @author ZWT
* @date 2023/10/10
*/
@Data @Data
public class GetBasePhotovoltaicPlantOutput { public class GetBasePhotovoltaicPlantOutput {
@XText("ID") @XText("ID")
private String 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") @XText("组织机构ID")
private String ouId; private String ouId;
...@@ -62,4 +47,18 @@ public class GetBasePhotovoltaicPlantOutput { ...@@ -62,4 +47,18 @@ public class GetBasePhotovoltaicPlantOutput {
@XText("所在地区") @XText("所在地区")
private String province; private String province;
@XText("经度(°)")
private BigDecimal longitude;
@XText("纬度(°)")
private BigDecimal latitude;
@XText("高程(m)")
private BigDecimal elevation;
@XText("地区编码")
private Integer areaCode;
@XText("地区名称")
private String areaName;
} }
package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class GetBasePhotovoltaicPlantViewInput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class GetBasePhotovoltaicPlantViewOutput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
package pps.core.base.service.data.base_photovoltaic_plant; package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@Data
public class GetSysOrganizationAndPlantViewOutput { public class GetSysOrganizationAndPlantViewOutput {
@XText("主键") @XText("主键")
private String id; private String id;
...@@ -62,6 +64,7 @@ public class GetSysOrganizationAndPlantViewOutput { ...@@ -62,6 +64,7 @@ public class GetSysOrganizationAndPlantViewOutput {
@XText("父级id") @XText("父级id")
private String parentOuId; private String parentOuId;
private String type; private String type;
@XText("经度") @XText("经度")
...@@ -73,187 +76,6 @@ public class GetSysOrganizationAndPlantViewOutput { ...@@ -73,187 +76,6 @@ public class GetSysOrganizationAndPlantViewOutput {
@XText("高程") @XText("高程")
private BigDecimal elevation; private BigDecimal elevation;
public BigDecimal getLongitude() { @XText("地区编码")
return longitude; private Integer areaCode;
}
public void setLongitude(BigDecimal longitude) {
this.longitude = longitude;
}
public BigDecimal getLatitude() {
return latitude;
}
public void setLatitude(BigDecimal latitude) {
this.latitude = latitude;
}
public BigDecimal getElevation() {
return elevation;
}
public void setElevation(BigDecimal elevation) {
this.elevation = elevation;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
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 Integer getProvince() {
return this.province;
}
public void setProvince(Integer value) {
this.province = value;
}
public String getParentOuId() {
return parentOuId;
}
public void setParentOuId(String parentOuId) {
this.parentOuId = parentOuId;
}
} }
...@@ -46,4 +46,16 @@ public class QueryBasePhotovoltaicPlantInput extends XPageInput { ...@@ -46,4 +46,16 @@ public class QueryBasePhotovoltaicPlantInput extends XPageInput {
@XText("线路ID") @XText("线路ID")
private String lineId; private String lineId;
@XText("经度(°)")
private BigDecimal longitude;
@XText("纬度(°)")
private BigDecimal latitude;
@XText("高程(m)")
private BigDecimal elevation;
@XText("地区编码")
private Integer areaCode;
} }
...@@ -43,4 +43,16 @@ public class QueryBasePhotovoltaicPlantOutput { ...@@ -43,4 +43,16 @@ public class QueryBasePhotovoltaicPlantOutput {
@XText("光伏设备规格型号name(字典获取)") @XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName; private String photovoltaicModelName;
@XText("经度(°)")
private BigDecimal longitude;
@XText("纬度(°)")
private BigDecimal latitude;
@XText("高程(m)")
private BigDecimal elevation;
@XText("地区编码")
private Integer areaCode;
} }
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;
@Data
public class QueryBasePhotovoltaicPlantViewInput extends XPageInput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
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;
@Data
public class QueryBasePhotovoltaicPlantViewOutput extends XPageInput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
...@@ -4,8 +4,16 @@ import lombok.Data; ...@@ -4,8 +4,16 @@ import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.math.BigDecimal; import java.math.BigDecimal;
/**
* 光伏电站
*
* @author ZWT
* @date 2023/10/10
*/
@Data @Data
public class UpdateBasePhotovoltaicPlantInput { public class UpdateBasePhotovoltaicPlantInput {
@XText("ID") @XText("ID")
private String id; private String id;
...@@ -32,7 +40,19 @@ public class UpdateBasePhotovoltaicPlantInput { ...@@ -32,7 +40,19 @@ public class UpdateBasePhotovoltaicPlantInput {
@XText("组织机构name") @XText("组织机构name")
private String ouName; private String ouName;
@XText("光伏设备规格型号name(字典获取)") @XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName; private String photovoltaicModelName;
} @XText("经度(°)")
private BigDecimal longitude;
@XText("纬度(°)")
private BigDecimal latitude;
@XText("高程(m)")
private BigDecimal elevation;
@XText("地区编码")
private Integer areaCode;
}
\ No newline at end of file
package pps.core.base.service.data.base_photovoltaic_plant;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class UpdateBasePhotovoltaicPlantOutput {
@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;
@XText("电站名称")
private String stationName;
@XText("出厂编号")
private String makerNumber;
@XText("光伏设备规格型号key(字典获取)")
private String photovoltaicModelKey;
@XText("安装倾角")
private BigDecimal mountingAngle;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("阵列朝向")
private BigDecimal arrayOrientation;
@XText("组织机构name")
private String ouName;
@XText("光伏设备规格型号name(字典获取)")
private String photovoltaicModelName;
}
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="pps.core.base.mapper.BasePhotovoltaicPlantViewMapper"> <mapper namespace="pps.core.base.mapper.BasePhotovoltaicPlantViewMapper">
<resultMap id="BaseResultMap" type="pps.core.base.entity.BasePhotovoltaicPlantView"> <resultMap id="BaseResultMap" type="pps.core.base.entity.BasePhotovoltaicPlantView">
<id column="id" property="id" jdbcType="VARCHAR" /> <id column="id" property="id" jdbcType="VARCHAR"/>
<result column="is_deleted" property="isDeleted" jdbcType="INTEGER" /> <result column="is_deleted" property="isDeleted" jdbcType="INTEGER"/>
<result column="create_by_id" property="createById" jdbcType="VARCHAR" /> <result column="create_by_id" property="createById" jdbcType="VARCHAR"/>
<result column="create_by_name" property="createByName" jdbcType="VARCHAR" /> <result column="create_by_name" property="createByName" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="DATE" /> <result column="create_time" property="createTime" jdbcType="DATE"/>
<result column="modify_by_id" property="modifyById" jdbcType="VARCHAR" /> <result column="modify_by_id" property="modifyById" jdbcType="VARCHAR"/>
<result column="modify_by_name" property="modifyByName" jdbcType="VARCHAR" /> <result column="modify_by_name" property="modifyByName" jdbcType="VARCHAR"/>
<result column="modify_time" property="modifyTime" jdbcType="DATE" /> <result column="modify_time" property="modifyTime" jdbcType="DATE"/>
<result column="ou_id" property="ouId" jdbcType="VARCHAR" /> <result column="ou_id" property="ouId" jdbcType="VARCHAR"/>
<result column="ou_name" property="ouName" jdbcType="VARCHAR" /> <result column="ou_name" property="ouName" jdbcType="VARCHAR"/>
<result column="station_name" property="stationName" jdbcType="VARCHAR" /> <result column="station_name" property="stationName" jdbcType="VARCHAR"/>
<result column="maker_number" property="makerNumber" jdbcType="VARCHAR" /> <result column="maker_number" property="makerNumber" jdbcType="VARCHAR"/>
<result column="photovoltaic_model_key" property="photovoltaicModelKey" jdbcType="VARCHAR" /> <result column="photovoltaic_model_key" property="photovoltaicModelKey" jdbcType="VARCHAR"/>
<result column="photovoltaic_model_name" property="photovoltaicModelName" jdbcType="VARCHAR" /> <result column="photovoltaic_model_name" property="photovoltaicModelName" jdbcType="VARCHAR"/>
<result column="mounting_angle" property="mountingAngle" jdbcType="DECIMAL" /> <result column="mounting_angle" property="mountingAngle" jdbcType="DECIMAL"/>
<result column="total_power" property="totalPower" jdbcType="DECIMAL" /> <result column="total_power" property="totalPower" jdbcType="DECIMAL"/>
<result column="array_orientation" property="arrayOrientation" jdbcType="DECIMAL" /> <result column="array_orientation" property="arrayOrientation" jdbcType="DECIMAL"/>
<result column="city_code" property="cityCode" jdbcType="VARCHAR" /> <result column="city_code" property="cityCode" jdbcType="VARCHAR"/>
<result column="province_code" property="provinceCode" jdbcType="VARCHAR" /> <result column="province_code" property="provinceCode" jdbcType="VARCHAR"/>
</resultMap> <result column="longitude" property="longitude" jdbcType="DECIMAL"/>
<sql id="Base_Column_List"> <result column="latitude" property="latitude" jdbcType="DECIMAL"/>
id, <result column="elevation" property="elevation" jdbcType="DECIMAL"/>
<result column="area_code" property="areaCode" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id
,
is_deleted, is_deleted,
create_by_id, create_by_id,
create_by_name, create_by_name,
...@@ -39,48 +44,50 @@ ...@@ -39,48 +44,50 @@
photovoltaic_model_name, photovoltaic_model_name,
mounting_angle, mounting_angle,
total_power, total_power,
array_orientation array_orientation,
</sql> longitude,
<select id="selectOne" parameterType="pps.core.base.entity.BasePhotovoltaicPlantView" resultMap="BaseResultMap"> latitude,
select elevation,
<include refid="Base_Column_List" /> area_code
from base_photovoltaic_plant </sql>
where <select id="selectOne" parameterType="pps.core.base.entity.BasePhotovoltaicPlantView" resultMap="BaseResultMap">
id=#{id} select
</select> <include refid="Base_Column_List"/>
<select id="selectList" parameterType="pps.core.base.entity.BasePhotovoltaicPlantView" resultMap="BaseResultMap"> from base_photovoltaic_plant
select where
<include refid="Base_Column_List" /> id=#{id}
from base_photovoltaic_plant </select>
where <select id="selectList" parameterType="pps.core.base.entity.BasePhotovoltaicPlantView" resultMap="BaseResultMap">
id=#{id} select
</select> <include refid="Base_Column_List"/>
<select id="selectPlantDetailList" parameterType="pps.core.base.entity.BasePhotovoltaicPlantView" resultMap="BaseResultMap"> from base_photovoltaic_plant
select where
p.id, id=#{id}
p.is_deleted, </select>
p.create_by_id, <select id="selectPlantDetailList" parameterType="pps.core.base.entity.BasePhotovoltaicPlantView"
p.create_by_name, resultMap="BaseResultMap">
p.create_time, select p.id,
p.modify_by_id, p.is_deleted,
p.modify_by_name, p.create_by_id,
p.modify_time, p.create_by_name,
p.ou_id, p.create_time,
p.ou_name, p.modify_by_id,
p.station_name, p.modify_by_name,
p.maker_number, p.modify_time,
p.photovoltaic_model_key, p.ou_id,
p.photovoltaic_model_name, p.ou_name,
p.mounting_angle, p.station_name,
p.total_power, p.maker_number,
p.array_orientation , p.photovoltaic_model_key,
sa.city_code , p.photovoltaic_model_name,
sa.province_code p.mounting_angle,
from p.total_power,
base_photovoltaic_plant p p.array_orientation,
join sys_organization so on so.id = p.ou_id sa.city_code,
left join sys_area sa on sa.id = so.province sa.province_code
where from base_photovoltaic_plant p
p.is_deleted = #{isDeleted} join sys_organization so on so.id = p.ou_id
</select> left join sys_area sa on sa.id = so.province
where p.is_deleted = #{isDeleted}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
AND l.wellhead_id = #{wellheadId} AND l.wellhead_id = #{wellheadId}
</if> </if>
ORDER BY ORDER BY
l.create_time ASC l.start_seq ASC
</select> </select>
<select id="selectWellheadListByParam" parameterType="pps.core.base.entity.BasePowerLineWellheadView" <select id="selectWellheadListByParam" parameterType="pps.core.base.entity.BasePowerLineWellheadView"
......
...@@ -29,4 +29,8 @@ public class SpaceOptimizeLongWellheadEnt extends BaseModel implements Serializa ...@@ -29,4 +29,8 @@ public class SpaceOptimizeLongWellheadEnt extends BaseModel implements Serializa
@XText("井号") @XText("井号")
@TableField @TableField
private String wellNumber; private String wellNumber;
@XText("启动顺序")
@TableField
private Integer startSeq;
} }
...@@ -27,4 +27,8 @@ public class SpaceOptimizeLongWellheadView extends BaseModel implements Serializ ...@@ -27,4 +27,8 @@ public class SpaceOptimizeLongWellheadView extends BaseModel implements Serializ
@XText("井号") @XText("井号")
@TableField @TableField
private String wellNumber; private String wellNumber;
@XText("启动顺序")
@TableField
private Integer startSeq;
} }
...@@ -29,4 +29,8 @@ public class SpaceOptimizeMidWellheadEnt extends BaseModel implements Serializab ...@@ -29,4 +29,8 @@ public class SpaceOptimizeMidWellheadEnt extends BaseModel implements Serializab
@XText("井号") @XText("井号")
@TableField @TableField
private String wellNumber; private String wellNumber;
@XText("启动顺序")
@TableField
private Integer startSeq;
} }
...@@ -27,4 +27,8 @@ public class SpaceOptimizeMidWellheadView extends BaseModel implements Serializa ...@@ -27,4 +27,8 @@ public class SpaceOptimizeMidWellheadView extends BaseModel implements Serializa
@XText("井号") @XText("井号")
@TableField @TableField
private String wellNumber; private String wellNumber;
@XText("启动顺序")
@TableField
private Integer startSeq;
} }
...@@ -29,4 +29,8 @@ public class SpaceOptimizeShortWellheadEnt extends BaseModel implements Serializ ...@@ -29,4 +29,8 @@ public class SpaceOptimizeShortWellheadEnt extends BaseModel implements Serializ
@XText("井号") @XText("井号")
@TableField @TableField
private String wellNumber; private String wellNumber;
@XText("启动顺序")
@TableField
private Integer startSeq;
} }
...@@ -33,4 +33,8 @@ public class SpaceOptimizeShortWellheadView extends BaseModel implements Seriali ...@@ -33,4 +33,8 @@ public class SpaceOptimizeShortWellheadView extends BaseModel implements Seriali
@XText("井号") @XText("井号")
@TableField @TableField
private String wellNumber; private String wellNumber;
@XText("启动顺序")
@TableField
private Integer startSeq;
} }
...@@ -27,4 +27,8 @@ public class SpaceOptimizeWellheadDTO extends BaseModel implements Serializable ...@@ -27,4 +27,8 @@ public class SpaceOptimizeWellheadDTO extends BaseModel implements Serializable
@XText("井号") @XText("井号")
@TableField @TableField
private String wellNumber; private String wellNumber;
@XText("启动顺序")
@TableField
private Integer startSeq;
} }
...@@ -18,6 +18,7 @@ public enum BusinessError implements XError { ...@@ -18,6 +18,7 @@ public enum BusinessError implements XError {
UnableToOptimize(2106, "无法优化"), UnableToOptimize(2106, "无法优化"),
LackOfHistoryRecord(2107, "缺少历史记录"), LackOfHistoryRecord(2107, "缺少历史记录"),
CannotBeDeleted(2108, "基础制度无法删除"), CannotBeDeleted(2108, "基础制度无法删除"),
Expired(2109, "已过期,无法重新校准"),
; ;
private int code; private int code;
......
...@@ -271,7 +271,7 @@ public class SpaceCalibrationService { ...@@ -271,7 +271,7 @@ public class SpaceCalibrationService {
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceOptimizeMidPeriodEnt::getInstitutionId, historyEnt.getInstitutionId()) .eq(SpaceOptimizeMidPeriodEnt::getInstitutionId, historyEnt.getInstitutionId())
.ge(SpaceOptimizeMidPeriodEnt::getOptimizeDeadline, inputDate) .ge(SpaceOptimizeMidPeriodEnt::getOptimizeDeadline, inputDate)
.le(BaseModel::getCreateTime, inputDate) .apply("DATE_FORMAT( create_time, '%Y-%m-%d' ) <= {0}", inputDate)
.orderByDesc(BaseModel::getCreateTime) .orderByDesc(BaseModel::getCreateTime)
.last("LIMIT 1") .last("LIMIT 1")
); );
...@@ -291,7 +291,7 @@ public class SpaceCalibrationService { ...@@ -291,7 +291,7 @@ public class SpaceCalibrationService {
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceOptimizeLongPeriodEnt::getInstitutionId, historyEnt.getInstitutionId()) .eq(SpaceOptimizeLongPeriodEnt::getInstitutionId, historyEnt.getInstitutionId())
.ge(SpaceOptimizeLongPeriodEnt::getOptimizeDeadline, inputDate) .ge(SpaceOptimizeLongPeriodEnt::getOptimizeDeadline, inputDate)
.le(BaseModel::getCreateTime, inputDate) .apply("DATE_FORMAT( create_time, '%Y-%m-%d' ) <= {0}", inputDate)
.orderByDesc(BaseModel::getCreateTime) .orderByDesc(BaseModel::getCreateTime)
.last("LIMIT 1") .last("LIMIT 1")
); );
......
...@@ -191,16 +191,16 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -191,16 +191,16 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
.map(SpaceInstitutionWellheadEnt::getWellheadId) .map(SpaceInstitutionWellheadEnt::getWellheadId)
.collect(Collectors.toList())); .collect(Collectors.toList()));
} }
List<DynamicQueryBasePowerLineWellheadViewOutput> powerLineWellheadList = this.getPowerLineWellheadList(context, wellheadInput); // List<DynamicQueryBasePowerLineWellheadViewOutput> powerLineWellheadList = this.getPowerLineWellheadList(context, wellheadInput);
if (CollUtil.isNotEmpty(powerLineWellheadList)) { // if (CollUtil.isNotEmpty(powerLineWellheadList)) {
powerLineWellheadList.forEach(wellhead -> { // powerLineWellheadList.forEach(wellhead -> {
SpaceInstitutionWellheadEnt ent = new SpaceInstitutionWellheadEnt(); // SpaceInstitutionWellheadEnt ent = new SpaceInstitutionWellheadEnt();
ent.setWellheadId(wellhead.getWellheadId()); // ent.setWellheadId(wellhead.getWellheadId());
ent.setWellNumber(wellhead.getWellNumber()); // ent.setWellNumber(wellhead.getWellNumber());
ent.setRunTypeKey(wellhead.getRunTypeKey()); // ent.setRunTypeKey(wellhead.getRunTypeKey());
wellheadEntList.add(ent); // wellheadEntList.add(ent);
}); // });
} // }
if (CollUtil.isNotEmpty(wellheadEntList)) { if (CollUtil.isNotEmpty(wellheadEntList)) {
List<GetSpaceInstitutionWellheadViewOutput> wellheadViewOutputs = XCopyUtils.copyNewList(wellheadEntList, GetSpaceInstitutionWellheadViewOutput.class); List<GetSpaceInstitutionWellheadViewOutput> wellheadViewOutputs = XCopyUtils.copyNewList(wellheadEntList, GetSpaceInstitutionWellheadViewOutput.class);
Map<String, String> runTypeMap = ServiceUtil.getDictMap(context, BusinessConstant.RUN_TYPE); Map<String, String> runTypeMap = ServiceUtil.getDictMap(context, BusinessConstant.RUN_TYPE);
...@@ -339,6 +339,10 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -339,6 +339,10 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
@XApiPost @XApiPost
@XText("校准历史--重新优化") @XText("校准历史--重新优化")
public XServiceResult anewOptimizeInstitution(XContext context, UpdateSpaceInstitutionDetailInput input) { public XServiceResult anewOptimizeInstitution(XContext context, UpdateSpaceInstitutionDetailInput input) {
String historyId = input.getHistoryId();
if (StringUtils.isEmpty(historyId)) {
return XServiceResult.error(context, BusinessError.LackOfHistoryRecord);
}
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
String institutionId = input.getId(); String institutionId = input.getId();
SpaceInstitutionDetailMapper mapper = context.getBean(SpaceInstitutionDetailMapper.class); SpaceInstitutionDetailMapper mapper = context.getBean(SpaceInstitutionDetailMapper.class);
...@@ -346,6 +350,14 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -346,6 +350,14 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
if (Objects.isNull(detail)) { if (Objects.isNull(detail)) {
return XServiceResult.error(context, XError.NotFound); return XServiceResult.error(context, XError.NotFound);
} }
//查校准历史详情
SpaceCalibrationHistoryMapper historyMapper = context.getBean(SpaceCalibrationHistoryMapper.class);
SpaceCalibrationHistoryEnt historyEnt = historyMapper.selectById(historyId);
//过了校准日期不能再校准
Date calibrationDate = historyEnt.getCalibrationDate();
if (DateUtil.date().compareTo(calibrationDate) > 0) {
return XServiceResult.error(context, BusinessError.Expired);
}
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
this.updateInstitutionDetail(context, session, mapper, institutionId, input, detail); this.updateInstitutionDetail(context, session, mapper, institutionId, input, detail);
//制度优化 //制度优化
...@@ -354,6 +366,38 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -354,6 +366,38 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
}); });
} }
/**
* 间开优化历史--分页列表
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QueryOptimizeHistoryViewOutput}>
*/
@XApiAnonymous
@XApiGet
@XText("间开优化历史--分页列表")
public XPageResult<QueryOptimizeHistoryViewOutput> queryOptimizeHistoryView(XContext context, QueryOptimizeHistoryViewInput input) {
SpaceInstitutionDetailViewMapper mapper = context.getBean(SpaceInstitutionDetailViewMapper.class);
PageHelper.startPage(input.getPage(), input.getLimit());
List<SpaceInstitutionDetailView> historyList = mapper.selectOptimizeHistoryList(SpaceInstitutionDetailView.builder()
.ouId(input.getOuId())
.build()
);
PageInfo<SpaceInstitutionDetailView> pageInfo = new PageInfo<>(historyList);
List<QueryOptimizeHistoryViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QueryOptimizeHistoryViewOutput.class);
if (CollUtil.isNotEmpty(outputs)) {
Map<String, String> lineNameMap = ServiceUtil.getPowerLineNameMap(context, outputs.stream()
.map(QueryOptimizeHistoryViewOutput::getLineId)
.distinct()
.collect(Collectors.toList())
);
outputs.forEach(o -> o.setLineName(lineNameMap.get(o.getLineId())));
}
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
/*-----------------------------------private-----------------------------------*/
/** /**
* 制度优化 * 制度优化
* *
...@@ -364,8 +408,9 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -364,8 +408,9 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
String institutionId = detail.getId(); String institutionId = detail.getId();
//取制度开始时间,判断是否可以执行 //取制度开始时间,判断是否可以执行
Date institutionStartDate = detail.getInstitutionStartDate(); Date institutionStartDate = detail.getInstitutionStartDate();
Date institutionEndDate = detail.getInstitutionEndDate();
DateTime currentTime = DateUtil.date(); DateTime currentTime = DateUtil.date();
if (currentTime.compareTo(institutionStartDate) >= 0) { if (currentTime.compareTo(institutionStartDate) >= 0 && currentTime.compareTo(institutionEndDate) <= 0) {
List<SpaceOptimizePeriodDTO> longPeriodDTOList = new ArrayList<>(32); List<SpaceOptimizePeriodDTO> longPeriodDTOList = new ArrayList<>(32);
List<SpaceOptimizeWellheadDTO> longWellheadDTOList = new ArrayList<>(64); List<SpaceOptimizeWellheadDTO> longWellheadDTOList = new ArrayList<>(64);
List<SpaceOptimizeDurationDTO> longDurationDTOList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> longDurationDTOList = new ArrayList<>(128);
...@@ -375,49 +420,16 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -375,49 +420,16 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
List<SpaceOptimizeDurationDTO> midDurationDTOList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> midDurationDTOList = new ArrayList<>(128);
List<SpaceOptimizeDurationDTO> midUnOptimizeDurationList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> midUnOptimizeDurationList = new ArrayList<>(128);
DateTime endOfMonth = DateUtil.endOfMonth(currentTime); DateTime endOfMonth = DateUtil.endOfMonth(currentTime);
if (endOfMonth.compareTo(institutionEndDate) > 0) {
endOfMonth = DateUtil.endOfDay(institutionEndDate);
}
DateTime endOfWeek = DateUtil.endOfWeek(currentTime); DateTime endOfWeek = DateUtil.endOfWeek(currentTime);
String lineId = detail.getLineId(); if (endOfWeek.compareTo(institutionEndDate) > 0) {
//取年份 endOfWeek = DateUtil.endOfDay(institutionEndDate);
int year = currentTime.year();
int monthIndex = currentTime.month();
//月份要加一
int monthNum = monthIndex + 1;
//上一月
int lastMonthNum = monthIndex;
int lastYear = year;
if (monthIndex == 0) {
lastMonthNum = 12;
lastYear = year - 1;
} }
SpaceOptimizeLineRelation relation = super.getOptimizeLineRelation(context, ListUtil.toList(detail)); String lineId = detail.getLineId();
//长期间开优化 String longExecutionCycle;
this.institutionalOptimization(context, longPeriodDTOList, longWellheadDTOList, longDurationDTOList, longUnOptimizeDurationList, relation, String midExecutionCycle;
detail, BaseUtils.getExecutionCycleForMonth(currentTime), endOfMonth, monthNum, DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(relation.getPlantIdsByLineIdMap().get(lineId))
.yearTime(String.valueOf(year))
.monthTime(BaseUtils.getMonthString(monthNum))
.dateType(BusinessConstant.ZERO)
.build(),
DynamicQueryStoragePredictedPowerInput.builder()
.storageIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId()))
.yearTime(String.valueOf(lastYear))
.monthTime(BaseUtils.getMonthString(lastMonthNum))
.build());
//中短期间开优化
this.institutionalOptimization(context, midPeriodDTOList, midWellheadDTOList, midDurationDTOList, midUnOptimizeDurationList, relation,
detail, BaseUtils.getExecutionCycleForWeek(currentTime), endOfWeek, monthNum,
DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(relation.getPlantIdsByLineIdMap().get(lineId))
.startTime(DateUtil.beginOfWeek(currentTime).toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(DateUtil.beginOfWeek(DateUtil.nextWeek()).toString(BusinessConstant.DATE_FORMAT_DAY))
.dateType(BusinessConstant.ONE)
.build(),
DynamicQueryStoragePredictedPowerInput.builder()
.storageIds(relation.getPlantIdsByLineIdMap().get(lineId))
.startTime(DateUtil.offsetDay(currentTime, -7).toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(currentTime.toString(BusinessConstant.DATE_FORMAT_DAY))
.build()
);
//逻辑删除已创建的长期优化数据 //逻辑删除已创建的长期优化数据
SpaceOptimizeLongPeriodMapper longPeriodMapper = context.getBean(SpaceOptimizeLongPeriodMapper.class); SpaceOptimizeLongPeriodMapper longPeriodMapper = context.getBean(SpaceOptimizeLongPeriodMapper.class);
List<SpaceOptimizeLongPeriodEnt> longPeriodEntList = longPeriodMapper.selectList(new LambdaQueryWrapper<SpaceOptimizeLongPeriodEnt>() List<SpaceOptimizeLongPeriodEnt> longPeriodEntList = longPeriodMapper.selectList(new LambdaQueryWrapper<SpaceOptimizeLongPeriodEnt>()
...@@ -426,8 +438,10 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -426,8 +438,10 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
.eq(SpaceOptimizeLongPeriodEnt::getInstitutionId, institutionId) .eq(SpaceOptimizeLongPeriodEnt::getInstitutionId, institutionId)
.eq(SpaceOptimizeLongPeriodEnt::getLineId, lineId) .eq(SpaceOptimizeLongPeriodEnt::getLineId, lineId)
.eq(SpaceOptimizeLongPeriodEnt::getOptimizeDeadline, endOfMonth) .eq(SpaceOptimizeLongPeriodEnt::getOptimizeDeadline, endOfMonth)
.orderByDesc(BaseModel::getCreateTime)
); );
if (CollUtil.isNotEmpty(longPeriodEntList)) { if (CollUtil.isNotEmpty(longPeriodEntList)) {
longExecutionCycle = longPeriodEntList.get(0).getExecutionCycle();
List<String> longIds = longPeriodEntList.stream() List<String> longIds = longPeriodEntList.stream()
.map(BaseModel::getId) .map(BaseModel::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -446,6 +460,8 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -446,6 +460,8 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
.set(BaseModel::getIsDeleted, BusinessConstant.ZERO) .set(BaseModel::getIsDeleted, BusinessConstant.ZERO)
.in(SpaceOptimizeLongDurationEnt::getLongPeriodId, longIds) .in(SpaceOptimizeLongDurationEnt::getLongPeriodId, longIds)
); );
} else {
longExecutionCycle = BaseUtils.getExecutionCycleForCalibration(currentTime, endOfMonth);
} }
//逻辑删除已创建的中短期优化数据 //逻辑删除已创建的中短期优化数据
SpaceOptimizeMidPeriodMapper midPeriodMapper = context.getBean(SpaceOptimizeMidPeriodMapper.class); SpaceOptimizeMidPeriodMapper midPeriodMapper = context.getBean(SpaceOptimizeMidPeriodMapper.class);
...@@ -455,8 +471,10 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -455,8 +471,10 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
.eq(SpaceOptimizeMidPeriodEnt::getInstitutionId, institutionId) .eq(SpaceOptimizeMidPeriodEnt::getInstitutionId, institutionId)
.eq(SpaceOptimizeMidPeriodEnt::getLineId, lineId) .eq(SpaceOptimizeMidPeriodEnt::getLineId, lineId)
.eq(SpaceOptimizeMidPeriodEnt::getOptimizeDeadline, endOfWeek) .eq(SpaceOptimizeMidPeriodEnt::getOptimizeDeadline, endOfWeek)
.orderByDesc(BaseModel::getCreateTime)
); );
if (CollUtil.isNotEmpty(midPeriodEntList)) { if (CollUtil.isNotEmpty(midPeriodEntList)) {
midExecutionCycle = midPeriodEntList.get(0).getExecutionCycle();
List<String> midIds = midPeriodEntList.stream() List<String> midIds = midPeriodEntList.stream()
.map(BaseModel::getId) .map(BaseModel::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -475,7 +493,17 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -475,7 +493,17 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
.set(BaseModel::getIsDeleted, BusinessConstant.ZERO) .set(BaseModel::getIsDeleted, BusinessConstant.ZERO)
.in(SpaceOptimizeMidDurationEnt::getMidPeriodId, midIds) .in(SpaceOptimizeMidDurationEnt::getMidPeriodId, midIds)
); );
} else {
midExecutionCycle = BaseUtils.getExecutionCycleForWeek(currentTime);
} }
//查电站关联信息
SpaceOptimizeLineRelation relation = super.getOptimizeLineRelation(context, ListUtil.toList(detail));
//长期间开优化
this.institutionalOptimization(context, longPeriodDTOList, longWellheadDTOList, longDurationDTOList, longUnOptimizeDurationList,
relation, detail, endOfMonth, currentTime, BusinessConstant.ZERO, longExecutionCycle);
//中短期间开优化
this.institutionalOptimization(context, midPeriodDTOList, midWellheadDTOList, midDurationDTOList, midUnOptimizeDurationList,
relation, detail, endOfWeek, currentTime, BusinessConstant.ONE, midExecutionCycle);
//创建长期优化数据 //创建长期优化数据
int size; int size;
SpaceOptimizeViewMapper optimizeViewMapper = context.getBean(SpaceOptimizeViewMapper.class); SpaceOptimizeViewMapper optimizeViewMapper = context.getBean(SpaceOptimizeViewMapper.class);
...@@ -555,39 +583,6 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -555,39 +583,6 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
} }
} }
/**
* 间开优化历史--分页列表
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QueryOptimizeHistoryViewOutput}>
*/
@XApiAnonymous
@XApiGet
@XText("间开优化历史--分页列表")
public XPageResult<QueryOptimizeHistoryViewOutput> queryOptimizeHistoryView(XContext context, QueryOptimizeHistoryViewInput input) {
SpaceInstitutionDetailViewMapper mapper = context.getBean(SpaceInstitutionDetailViewMapper.class);
PageHelper.startPage(input.getPage(), input.getLimit());
List<SpaceInstitutionDetailView> historyList = mapper.selectOptimizeHistoryList(SpaceInstitutionDetailView.builder()
.ouId(input.getOuId())
.build()
);
PageInfo<SpaceInstitutionDetailView> pageInfo = new PageInfo<>(historyList);
List<QueryOptimizeHistoryViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QueryOptimizeHistoryViewOutput.class);
if (CollUtil.isNotEmpty(outputs)) {
Map<String, String> lineNameMap = ServiceUtil.getPowerLineNameMap(context, outputs.stream()
.map(QueryOptimizeHistoryViewOutput::getLineId)
.distinct()
.collect(Collectors.toList())
);
outputs.forEach(o -> o.setLineName(lineNameMap.get(o.getLineId())));
}
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
/*-----------------------------------private-----------------------------------*/
/** /**
* 条件查询输电线路井口列表 * 条件查询输电线路井口列表
* *
...@@ -692,27 +687,79 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -692,27 +687,79 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
* @param unOptimizeDurationList 取消优化工期列表 * @param unOptimizeDurationList 取消优化工期列表
* @param relation 关系 * @param relation 关系
* @param detail 细节 * @param detail 细节
* @param executionCycle 执行周期
* @param optimizeDeadline 优化截止日期 * @param optimizeDeadline 优化截止日期
* @param monthNum 月份 * @param currentTime 当前时间
* @param plantPowerInput 电厂功率输入 * @param dateFlag 日期标志
* @param storagePowerinput 存储电源输入 * @param executionCycle 执行周期
*/ */
private void institutionalOptimization(XContext context, List<SpaceOptimizePeriodDTO> periodDTOList, List<SpaceOptimizeWellheadDTO> wellheadDTOList, private void institutionalOptimization(XContext context, List<SpaceOptimizePeriodDTO> periodDTOList, List<SpaceOptimizeWellheadDTO> wellheadDTOList,
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
SpaceOptimizeLineRelation relation, SpaceInstitutionDetailEnt detail, SpaceOptimizeLineRelation relation, SpaceInstitutionDetailEnt detail,
String executionCycle, Date optimizeDeadline, int monthNum, Date optimizeDeadline, DateTime currentTime, int dateFlag, String executionCycle) {
DynamicQueryPlantPredictedPowerInput plantPowerInput, DynamicQueryStoragePredictedPowerInput storagePowerinput) { //取年份
int year = currentTime.year();
int monthIndex = currentTime.month();
//月份要加一
int monthNum = monthIndex + 1;
DynamicQueryPlantPredictedPowerInput plantPowerInput;
DynamicQueryStoragePredictedPowerInput storagePowerinput;
//创建记录 //创建记录
String periodId = super.createOptimizePeriod(periodDTOList, detail.getId(), detail.getLineId(), executionCycle, optimizeDeadline); String periodId = super.createOptimizePeriod(periodDTOList, detail.getId(), detail.getLineId(), executionCycle, optimizeDeadline);
switch (detail.getGridTypeKey()) { switch (detail.getGridTypeKey()) {
//并网型优化 //并网型优化
case "1": case "1":
if (0 == dateFlag) {
plantPowerInput = DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId()))
.yearTime(String.valueOf(year))
.monthTime(BaseUtils.getMonthString(monthNum))
.dateType(BusinessConstant.ZERO)
.build();
} else {
plantPowerInput = DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId()))
.startTime(DateUtil.beginOfWeek(currentTime).toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(DateUtil.beginOfWeek(DateUtil.nextWeek()).toString(BusinessConstant.DATE_FORMAT_DAY))
.dateType(BusinessConstant.ONE)
.build();
}
super.gridConnectedOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList, super.gridConnectedOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), detail, monthNum, periodId, plantPowerInput); relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), detail, monthNum, periodId, plantPowerInput);
break; break;
//离网型优化 //离网型优化
case "0": case "0":
//上一月
int lastMonthNum = monthIndex;
int lastYear = year;
if (monthIndex == 0) {
lastMonthNum = 12;
lastYear = year - 1;
}
if (0 == dateFlag) {
plantPowerInput = DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId()))
.yearTime(String.valueOf(year))
.monthTime(BaseUtils.getMonthString(monthNum))
.dateType(BusinessConstant.ZERO)
.build();
storagePowerinput = DynamicQueryStoragePredictedPowerInput.builder()
.storageIds(relation.getStorageIdsByLineIdMap().get(detail.getLineId()))
.yearTime(String.valueOf(lastYear))
.monthTime(BaseUtils.getMonthString(lastMonthNum))
.build();
} else {
plantPowerInput = DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId()))
.startTime(DateUtil.beginOfWeek(currentTime).toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(DateUtil.beginOfWeek(DateUtil.nextWeek()).toString(BusinessConstant.DATE_FORMAT_DAY))
.dateType(BusinessConstant.ONE)
.build();
storagePowerinput = DynamicQueryStoragePredictedPowerInput.builder()
.storageIds(relation.getStorageIdsByLineIdMap().get(detail.getLineId()))
.startTime(DateUtil.offsetDay(currentTime, -7).toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(currentTime.toString(BusinessConstant.DATE_FORMAT_DAY))
.build();
}
super.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList, super.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()),
relation.getStorageAvgMap(), detail, periodId, relation.getStorageAvgMap(), detail, periodId,
...@@ -722,4 +769,4 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService { ...@@ -722,4 +769,4 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
//电网类型不存在 //电网类型不存在
} }
} }
} }
\ No newline at end of file
...@@ -13,6 +13,7 @@ import pps.cloud.base.service.IBaseWellheadCloudService; ...@@ -13,6 +13,7 @@ import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput; import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput; import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput;
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageInput; import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageInput;
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageOutput;
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageViewOutput; import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageViewOutput;
import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailInput; import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailInput;
import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput; import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput;
...@@ -113,7 +114,8 @@ public class SpaceOptimizeBaseService { ...@@ -113,7 +114,8 @@ public class SpaceOptimizeBaseService {
) )
) )
//取线路关联所有储能电站计算平均功率 //取线路关联所有储能电站计算平均功率
.storageAvgMap(this.getPowerLineStorageListByLineIds(context, lineIds)) .storageAvgMap(this.getPowerLineStorageAvgByLineIds(context, lineIds))
.storageIdsByLineIdMap(this.getPowerLineStorageListByLineIds(context, lineIds))
.build(); .build();
} }
...@@ -247,7 +249,7 @@ public class SpaceOptimizeBaseService { ...@@ -247,7 +249,7 @@ public class SpaceOptimizeBaseService {
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) { for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w); SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber()); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq());
//取当前井口最大发电量 //取当前井口最大发电量
BigDecimal serviceRating = wellhead.getServiceRating(); BigDecimal serviceRating = wellhead.getServiceRating();
List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId); List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId);
...@@ -366,7 +368,7 @@ public class SpaceOptimizeBaseService { ...@@ -366,7 +368,7 @@ public class SpaceOptimizeBaseService {
//逐15分钟计算光伏出力-井场运行功率之和,获得光伏出力不足时间段,并计算储能可用时长 //逐15分钟计算光伏出力-井场运行功率之和,获得光伏出力不足时间段,并计算储能可用时长
Iterator<DynamicQueryStoragePredictedPowerOutput> iterator = averageEnergyStorageList.iterator(); Iterator<DynamicQueryStoragePredictedPowerOutput> iterator = averageEnergyStorageList.iterator();
for (DynamicQueryPlantPredictedPowerOutput avg : subAvgPowerList) { for (DynamicQueryPlantPredictedPowerOutput avg : subAvgPowerList) {
if (avg.getPower().compareTo(totalOperatingPower) >= 0) { if (totalOperatingPower.compareTo(avg.getPower()) >= 0) {
//电量不足,计算储能可用时长 //电量不足,计算储能可用时长
avg.setBatteryLowFlag(false); avg.setBatteryLowFlag(false);
String hourTime = avg.getHourTime(); String hourTime = avg.getHourTime();
...@@ -407,6 +409,9 @@ public class SpaceOptimizeBaseService { ...@@ -407,6 +409,9 @@ public class SpaceOptimizeBaseService {
if (createTime.compareTo(openTime) >= 0 && createTime.compareTo(closeTime) <= 0) { if (createTime.compareTo(openTime) >= 0 && createTime.compareTo(closeTime) <= 0) {
String endString = createTime.offsetNew(DateField.MINUTE, 15).toString(BusinessConstant.MINUTES_FORMAT); String endString = createTime.offsetNew(DateField.MINUTE, 15).toString(BusinessConstant.MINUTES_FORMAT);
String startString = createTime.toString(BusinessConstant.MINUTES_FORMAT); String startString = createTime.toString(BusinessConstant.MINUTES_FORMAT);
if (StringUtils.equals(endString, BusinessConstant.START_OF_DAY_TIME)) {
endString = BusinessConstant.END_OF_DAY_TIME;
}
//电量满足跳过 //电量满足跳过
if (avg.getBatteryLowFlag()) { if (avg.getBatteryLowFlag()) {
//创建光伏 //创建光伏
...@@ -433,6 +438,62 @@ public class SpaceOptimizeBaseService { ...@@ -433,6 +438,62 @@ public class SpaceOptimizeBaseService {
} }
} }
} }
//时间段优化
if (CollUtil.isNotEmpty(durationDTOList)) {
List<SpaceOptimizeDurationDTO> finallyList = new ArrayList<>(durationDTOList.size());
List<SpaceOptimizeDurationDTO> offList = new ArrayList<>(durationDTOList.size());
for (SpaceOptimizeDurationDTO durationDTO : durationDTOList) {
if (StringUtils.equals(periodId, durationDTO.getPeriodId())) {
offList.add(durationDTO);
} else {
finallyList.add(durationDTO);
}
}
//优化
if (CollUtil.isNotEmpty(offList)) {
Map<String, List<SpaceOptimizeDurationDTO>> collect = offList.stream()
.collect(Collectors.groupingBy(SpaceOptimizeDurationDTO::getWellheadId));
for (String wellheadId : collect.keySet()) {
List<SpaceOptimizeDurationDTO> list = collect.get(wellheadId).stream()
.sorted(Comparator.comparing(SpaceOptimizeDurationDTO::getOpenWellTime))
.collect(Collectors.toList());
int size = list.size();
if (size == 1) {
finallyList.add(list.get(0));
continue;
}
List<SpaceOptimizeDurationDTO> temporarilyList = CollUtil.newArrayList(list.get(0));
for (int i = 1; i < size; i++) {
SpaceOptimizeDurationDTO end = temporarilyList.get(temporarilyList.size() - 1);
SpaceOptimizeDurationDTO durationDTO = list.get(i);
boolean equals = StringUtils.equals(end.getGenerationTypeKey(), durationDTO.getGenerationTypeKey());
//判断类型和时间段
if (!equals) {
SpaceOptimizeDurationDTO begin = temporarilyList.get(0);
begin.setCloseWellTime(end.getCloseWellTime());
finallyList.add(begin);
temporarilyList = new ArrayList<>(12);
} else if (equals &&
!StringUtils.equals(end.getCloseWellTime(), durationDTO.getOpenWellTime()) &&
!StringUtils.equals(end.getId(), durationDTO.getId())
) {
SpaceOptimizeDurationDTO begin = temporarilyList.get(0);
begin.setCloseWellTime(end.getCloseWellTime());
finallyList.add(begin);
temporarilyList = new ArrayList<>(12);
}
temporarilyList.add(durationDTO);
if (i == size - 1) {
SpaceOptimizeDurationDTO begin = temporarilyList.get(0);
begin.setCloseWellTime(end.getCloseWellTime());
finallyList.add(begin);
}
}
}
CollUtil.clear(durationDTOList);
finallyList.forEach(f -> durationDTOList.add(f));
}
}
} }
} }
...@@ -480,15 +541,17 @@ public class SpaceOptimizeBaseService { ...@@ -480,15 +541,17 @@ public class SpaceOptimizeBaseService {
* @param periodId 期间id * @param periodId 期间id
* @param wellheadId 井口id * @param wellheadId 井口id
* @param wellNumber 井号 * @param wellNumber 井号
* @param startSeq 开始seq
* @return {@link String} * @return {@link String}
*/ */
public String createOptimizeWellhead(List<SpaceOptimizeWellheadDTO> wellheadDTOList, String periodId, public String createOptimizeWellhead(List<SpaceOptimizeWellheadDTO> wellheadDTOList, String periodId,
String wellheadId, String wellNumber) { String wellheadId, String wellNumber, Integer startSeq) {
SpaceOptimizeWellheadDTO wellheadDTO = new SpaceOptimizeWellheadDTO(); SpaceOptimizeWellheadDTO wellheadDTO = new SpaceOptimizeWellheadDTO();
BaseUtils.setBaseModelDefaultForJob(wellheadDTO); BaseUtils.setBaseModelDefaultForJob(wellheadDTO);
wellheadDTO.setPeriodId(periodId); wellheadDTO.setPeriodId(periodId);
wellheadDTO.setWellheadId(wellheadId); wellheadDTO.setWellheadId(wellheadId);
wellheadDTO.setWellNumber(wellNumber); wellheadDTO.setWellNumber(wellNumber);
wellheadDTO.setStartSeq(startSeq);
wellheadDTOList.add(wellheadDTO); wellheadDTOList.add(wellheadDTO);
return wellheadDTO.getId(); return wellheadDTO.getId();
} }
...@@ -585,7 +648,7 @@ public class SpaceOptimizeBaseService { ...@@ -585,7 +648,7 @@ public class SpaceOptimizeBaseService {
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) { for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w); SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber()); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq());
//取当前井口最大发电量 //取当前井口最大发电量
BigDecimal serviceRating = wellhead.getServiceRating(); BigDecimal serviceRating = wellhead.getServiceRating();
List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId); List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId);
...@@ -732,7 +795,7 @@ public class SpaceOptimizeBaseService { ...@@ -732,7 +795,7 @@ public class SpaceOptimizeBaseService {
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) { for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w); SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber()); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq());
List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId); List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId);
if (CollUtil.isEmpty(durationConfigList)) { if (CollUtil.isEmpty(durationConfigList)) {
//没有设置时间段,无法优化 //没有设置时间段,无法优化
...@@ -811,7 +874,7 @@ public class SpaceOptimizeBaseService { ...@@ -811,7 +874,7 @@ public class SpaceOptimizeBaseService {
if (CollUtil.isNotEmpty(unOptimizeWellheadList)) { if (CollUtil.isNotEmpty(unOptimizeWellheadList)) {
for (SpaceInstitutionWellheadView wellhead : unOptimizeWellheadList) { for (SpaceInstitutionWellheadView wellhead : unOptimizeWellheadList) {
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber()); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq());
switch (wellhead.getIntervalTypeKey()) { switch (wellhead.getIntervalTypeKey()) {
//小间开(不优化) //小间开(不优化)
case "0": case "0":
...@@ -956,9 +1019,9 @@ public class SpaceOptimizeBaseService { ...@@ -956,9 +1019,9 @@ public class SpaceOptimizeBaseService {
* @param lineIds 线路ID * @param lineIds 线路ID
* @return {@link Map}<{@link String}, {@link List}<{@link DynamicQueryBasePowerLineStorageViewOutput}>> * @return {@link Map}<{@link String}, {@link List}<{@link DynamicQueryBasePowerLineStorageViewOutput}>>
*/ */
private Map<String, List<DynamicQueryBasePowerLineStorageViewOutput>> getPowerLineStorageListByLineIds(XContext context, Set<String> lineIds) { private Map<String, List<DynamicQueryBasePowerLineStorageViewOutput>> getPowerLineStorageAvgByLineIds(XContext context, Set<String> lineIds) {
IBasePowerLineCloudService cloudService = context.getBean(IBasePowerLineCloudService.class); IBasePowerLineCloudService cloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineStorageViewOutput> result = cloudService.queryPowerLineStorageListByLineIds(context, XListResult<DynamicQueryBasePowerLineStorageViewOutput> result = cloudService.queryPowerLineStorageAvgByLineIds(context,
DynamicQueryBasePowerLineStorageInput.builder() DynamicQueryBasePowerLineStorageInput.builder()
.lineIds(lineIds) .lineIds(lineIds)
.build() .build()
...@@ -975,6 +1038,34 @@ public class SpaceOptimizeBaseService { ...@@ -975,6 +1038,34 @@ public class SpaceOptimizeBaseService {
return collect; return collect;
} }
/**
* 查询线路下所有储能设备ID
*
* @param context 上下文
* @param lineIds 线路ID
* @return {@link Map}<{@link String}, {@link List}<{@link String}>>
*/
private Map<String, List<String>> getPowerLineStorageListByLineIds(XContext context, Set<String> lineIds) {
IBasePowerLineCloudService cloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineStorageOutput> result = cloudService.queryPowerLineStorageListByLineIds(context,
DynamicQueryBasePowerLineStorageInput.builder()
.lineIds(lineIds)
.build());
result.throwIfFail();
List<DynamicQueryBasePowerLineStorageOutput> list = result.getResult();
Map<String, List<String>> collect;
if (CollUtil.isEmpty(list)) {
collect = new HashMap<>(0);
} else {
collect = list.stream()
.collect(
Collectors.groupingBy(DynamicQueryBasePowerLineStorageOutput::getLineId,
Collectors.mapping(DynamicQueryBasePowerLineStorageOutput::getStorageId, Collectors.toList()))
);
}
return collect;
}
/** /**
* 为间开井口列表设置发电功率 * 为间开井口列表设置发电功率
* *
......
...@@ -20,6 +20,7 @@ import xstartup.data.XServiceResult; ...@@ -20,6 +20,7 @@ import xstartup.data.XServiceResult;
import xstartup.helper.XTransactionHelper; import xstartup.helper.XTransactionHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -61,12 +62,15 @@ public class SpaceOptimizeLongCloudServiceImpl extends SpaceOptimizeBaseService ...@@ -61,12 +62,15 @@ public class SpaceOptimizeLongCloudServiceImpl extends SpaceOptimizeBaseService
List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64); List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64);
List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128);
List<SpaceOptimizeDurationDTO> unOptimizeDurationList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> unOptimizeDurationList = new ArrayList<>(128);
String executionCycleForMonth = BaseUtils.getExecutionCycleForMonth(date);
DateTime optimizeDeadline = DateUtil.endOfMonth(date);
//优化 //优化
for (SpaceInstitutionDetailEnt detail : detailEntList) { for (SpaceInstitutionDetailEnt detail : detailEntList) {
Date institutionEndDate = detail.getInstitutionEndDate();
DateTime optimizeDeadline = DateUtil.endOfMonth(date);
if (optimizeDeadline.compareTo(institutionEndDate) > 0) {
optimizeDeadline = DateUtil.endOfDay(institutionEndDate);
}
//创建记录 //创建记录
String periodId = super.createOptimizePeriod(periodDTOList, detail.getId(), detail.getLineId(), executionCycleForMonth, optimizeDeadline); String periodId = super.createOptimizePeriod(periodDTOList, detail.getId(), detail.getLineId(), BaseUtils.getExecutionCycleForCalibration(date, optimizeDeadline), optimizeDeadline);
switch (detail.getGridTypeKey()) { switch (detail.getGridTypeKey()) {
//并网型优化 //并网型优化
case "1": case "1":
...@@ -84,7 +88,7 @@ public class SpaceOptimizeLongCloudServiceImpl extends SpaceOptimizeBaseService ...@@ -84,7 +88,7 @@ public class SpaceOptimizeLongCloudServiceImpl extends SpaceOptimizeBaseService
super.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList, relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), super.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList, relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()),
relation.getStorageAvgMap(), detail, periodId, relation.getStorageAvgMap(), detail, periodId,
DynamicQueryStoragePredictedPowerInput.builder() DynamicQueryStoragePredictedPowerInput.builder()
.storageIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId())) .storageIds(relation.getStorageIdsByLineIdMap().get(detail.getLineId()))
.yearTime(String.valueOf(lastYear)) .yearTime(String.valueOf(lastYear))
.monthTime(lastMonth) .monthTime(lastMonth)
.build(), .build(),
......
...@@ -97,7 +97,6 @@ public class SpaceOptimizeLongPeriodService extends SpaceOptimizeBaseService { ...@@ -97,7 +97,6 @@ public class SpaceOptimizeLongPeriodService extends SpaceOptimizeBaseService {
return XSingleResult.error(context, XError.NotFound); return XSingleResult.error(context, XError.NotFound);
} }
GetSpaceOptimizeLongPeriodViewOutput output = XCopyUtils.copyNewObject(period, GetSpaceOptimizeLongPeriodViewOutput.class); GetSpaceOptimizeLongPeriodViewOutput output = XCopyUtils.copyNewObject(period, GetSpaceOptimizeLongPeriodViewOutput.class);
output.setDateList(ServiceUtil.getOptimizeDateList(period.getCreateTime(), period.getOptimizeDeadline()));
//查间开制度详情 //查间开制度详情
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class); SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
SpaceInstitutionDetailEnt detailEnt = detailMapper.selectById(period.getInstitutionId()); SpaceInstitutionDetailEnt detailEnt = detailMapper.selectById(period.getInstitutionId());
...@@ -113,12 +112,18 @@ public class SpaceOptimizeLongPeriodService extends SpaceOptimizeBaseService { ...@@ -113,12 +112,18 @@ public class SpaceOptimizeLongPeriodService extends SpaceOptimizeBaseService {
} else { } else {
output.setStrategyDetailList(new ArrayList<>(0)); output.setStrategyDetailList(new ArrayList<>(0));
} }
DateTime beginOfMonth = DateUtil.beginOfMonth(period.getOptimizeDeadline());
if (beginOfMonth.compareTo(detailEnt.getInstitutionStartDate()) < 0) {
beginOfMonth = DateUtil.date(detailEnt.getInstitutionStartDate());
}
output.setDateList(ServiceUtil.getOptimizeDateList(beginOfMonth, period.getOptimizeDeadline()));
output.setGridTypeKey(detailEnt.getGridTypeKey()); output.setGridTypeKey(detailEnt.getGridTypeKey());
//查井口列表 //查井口列表
SpaceOptimizeLongWellheadMapper wellheadMapper = context.getBean(SpaceOptimizeLongWellheadMapper.class); SpaceOptimizeLongWellheadMapper wellheadMapper = context.getBean(SpaceOptimizeLongWellheadMapper.class);
List<SpaceOptimizeLongWellheadEnt> wellheadList = wellheadMapper.selectList(new LambdaQueryWrapper<SpaceOptimizeLongWellheadEnt>() List<SpaceOptimizeLongWellheadEnt> wellheadList = wellheadMapper.selectList(new LambdaQueryWrapper<SpaceOptimizeLongWellheadEnt>()
.eq(SpaceOptimizeLongWellheadEnt::getLongPeriodId, longPeriodId) .eq(SpaceOptimizeLongWellheadEnt::getLongPeriodId, longPeriodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.orderByAsc(SpaceOptimizeLongWellheadEnt::getStartSeq)
); );
if (CollUtil.isNotEmpty(wellheadList)) { if (CollUtil.isNotEmpty(wellheadList)) {
List<GetSpaceOptimizeLongWellheadOutput> wellheadOutputs = XCopyUtils.copyNewList(wellheadList, GetSpaceOptimizeLongWellheadOutput.class); List<GetSpaceOptimizeLongWellheadOutput> wellheadOutputs = XCopyUtils.copyNewList(wellheadList, GetSpaceOptimizeLongWellheadOutput.class);
......
...@@ -20,6 +20,7 @@ import xstartup.data.XServiceResult; ...@@ -20,6 +20,7 @@ import xstartup.data.XServiceResult;
import xstartup.helper.XTransactionHelper; import xstartup.helper.XTransactionHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -53,14 +54,18 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -53,14 +54,18 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128);
List<SpaceOptimizeDurationDTO> unOptimizeDurationList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> unOptimizeDurationList = new ArrayList<>(128);
String executionCycleForWeek = BaseUtils.getExecutionCycleForWeek(date); String executionCycleForWeek = BaseUtils.getExecutionCycleForWeek(date);
//优化截止日期
DateTime optimizeDeadline = DateUtil.endOfWeek(date);
//日期查询范围结束条件,下周一 //日期查询范围结束条件,下周一
String nextWeek = DateUtil.beginOfWeek(DateUtil.nextWeek()).toString(BusinessConstant.DATE_FORMAT_DAY); String nextWeek = DateUtil.beginOfWeek(DateUtil.nextWeek()).toString(BusinessConstant.DATE_FORMAT_DAY);
//优化 //优化
for (SpaceInstitutionDetailEnt detail : detailEntList) { for (SpaceInstitutionDetailEnt detail : detailEntList) {
String detailId = detail.getId(); String detailId = detail.getId();
String lineId = detail.getLineId(); String lineId = detail.getLineId();
Date institutionEndDate = detail.getInstitutionEndDate();
//优化截止日期
DateTime optimizeDeadline = DateUtil.endOfWeek(date);
if (optimizeDeadline.compareTo(institutionEndDate) > 0) {
optimizeDeadline = DateUtil.endOfDay(institutionEndDate);
}
//创建记录 //创建记录
String periodId = super.createOptimizePeriod(periodDTOList, detailId, lineId, executionCycleForWeek, optimizeDeadline); String periodId = super.createOptimizePeriod(periodDTOList, detailId, lineId, executionCycleForWeek, optimizeDeadline);
switch (detail.getGridTypeKey()) { switch (detail.getGridTypeKey()) {
...@@ -81,7 +86,7 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -81,7 +86,7 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
super.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList, super.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), relation.getStorageAvgMap(), detail, periodId, relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), relation.getStorageAvgMap(), detail, periodId,
DynamicQueryStoragePredictedPowerInput.builder() DynamicQueryStoragePredictedPowerInput.builder()
.storageIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId())) .storageIds(relation.getStorageIdsByLineIdMap().get(detail.getLineId()))
.startTime(DateUtil.beginOfWeek(lastWeek).toString(BusinessConstant.DATE_FORMAT_DAY)) .startTime(DateUtil.beginOfWeek(lastWeek).toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(DateUtil.endOfWeek(lastWeek).toString(BusinessConstant.DATE_FORMAT_DAY)) .endTime(DateUtil.endOfWeek(lastWeek).toString(BusinessConstant.DATE_FORMAT_DAY))
.build(), .build(),
......
package pps.core.space.service; package pps.core.space.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
...@@ -95,7 +96,6 @@ public class SpaceOptimizeMidPeriodService extends SpaceOptimizeBaseService { ...@@ -95,7 +96,6 @@ public class SpaceOptimizeMidPeriodService extends SpaceOptimizeBaseService {
return XSingleResult.error(context, XError.NotFound); return XSingleResult.error(context, XError.NotFound);
} }
GetSpaceOptimizeMidPeriodViewOutput output = XCopyUtils.copyNewObject(period, GetSpaceOptimizeMidPeriodViewOutput.class); GetSpaceOptimizeMidPeriodViewOutput output = XCopyUtils.copyNewObject(period, GetSpaceOptimizeMidPeriodViewOutput.class);
output.setDateList(ServiceUtil.getOptimizeDateList(period.getCreateTime(), period.getOptimizeDeadline()));
//查间开制度详情 //查间开制度详情
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class); SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
SpaceInstitutionDetailEnt detailEnt = detailMapper.selectById(period.getInstitutionId()); SpaceInstitutionDetailEnt detailEnt = detailMapper.selectById(period.getInstitutionId());
...@@ -111,12 +111,18 @@ public class SpaceOptimizeMidPeriodService extends SpaceOptimizeBaseService { ...@@ -111,12 +111,18 @@ public class SpaceOptimizeMidPeriodService extends SpaceOptimizeBaseService {
} else { } else {
output.setStrategyDetailList(new ArrayList<>(0)); output.setStrategyDetailList(new ArrayList<>(0));
} }
DateTime beginOfWeek = DateUtil.beginOfWeek(period.getOptimizeDeadline());
if (beginOfWeek.compareTo(detailEnt.getInstitutionStartDate()) < 0) {
beginOfWeek = DateUtil.date(detailEnt.getInstitutionStartDate());
}
output.setDateList(ServiceUtil.getOptimizeDateList(beginOfWeek, period.getOptimizeDeadline()));
output.setGridTypeKey(detailEnt.getGridTypeKey()); output.setGridTypeKey(detailEnt.getGridTypeKey());
//查井口列表 //查井口列表
SpaceOptimizeMidWellheadMapper wellheadMapper = context.getBean(SpaceOptimizeMidWellheadMapper.class); SpaceOptimizeMidWellheadMapper wellheadMapper = context.getBean(SpaceOptimizeMidWellheadMapper.class);
List<SpaceOptimizeMidWellheadEnt> wellheadList = wellheadMapper.selectList(new LambdaQueryWrapper<SpaceOptimizeMidWellheadEnt>() List<SpaceOptimizeMidWellheadEnt> wellheadList = wellheadMapper.selectList(new LambdaQueryWrapper<SpaceOptimizeMidWellheadEnt>()
.eq(SpaceOptimizeMidWellheadEnt::getMidPeriodId, midPeriodId) .eq(SpaceOptimizeMidWellheadEnt::getMidPeriodId, midPeriodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.orderByAsc(SpaceOptimizeMidWellheadEnt::getStartSeq)
); );
if (CollUtil.isNotEmpty(wellheadList)) { if (CollUtil.isNotEmpty(wellheadList)) {
List<GetSpaceOptimizeMidWellheadOutput> wellheadOutputs = XCopyUtils.copyNewList(wellheadList, GetSpaceOptimizeMidWellheadOutput.class); List<GetSpaceOptimizeMidWellheadOutput> wellheadOutputs = XCopyUtils.copyNewList(wellheadList, GetSpaceOptimizeMidWellheadOutput.class);
......
...@@ -107,7 +107,7 @@ public class SpaceOptimizeShortCloudServiceImpl extends SpaceOptimizeBaseService ...@@ -107,7 +107,7 @@ public class SpaceOptimizeShortCloudServiceImpl extends SpaceOptimizeBaseService
if (CollUtil.isNotEmpty(unOptimizeWellheadList)) { if (CollUtil.isNotEmpty(unOptimizeWellheadList)) {
for (SpaceInstitutionWellheadEnt wellhead : unOptimizeWellheadList) { for (SpaceInstitutionWellheadEnt wellhead : unOptimizeWellheadList) {
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = super.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber()); String recordId = super.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq());
switch (wellhead.getIntervalTypeKey()) { switch (wellhead.getIntervalTypeKey()) {
//小间开(不优化) //小间开(不优化)
case "0": case "0":
...@@ -166,7 +166,7 @@ public class SpaceOptimizeShortCloudServiceImpl extends SpaceOptimizeBaseService ...@@ -166,7 +166,7 @@ public class SpaceOptimizeShortCloudServiceImpl extends SpaceOptimizeBaseService
} }
for (SpaceInstitutionWellheadEnt wellhead : needToOptimizeWellheadList) { for (SpaceInstitutionWellheadEnt wellhead : needToOptimizeWellheadList) {
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = super.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber()); String recordId = super.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq());
if (!durationListMap.containsKey(wellheadId)) { if (!durationListMap.containsKey(wellheadId)) {
continue; continue;
} }
......
...@@ -36,4 +36,9 @@ public class SpaceOptimizeLineRelation { ...@@ -36,4 +36,9 @@ public class SpaceOptimizeLineRelation {
* 储能设备参数平均值Map * 储能设备参数平均值Map
*/ */
Map<String, List<DynamicQueryBasePowerLineStorageViewOutput>> storageAvgMap; Map<String, List<DynamicQueryBasePowerLineStorageViewOutput>> storageAvgMap;
/**
* 储能设备Map
*/
Map<String, List<String>> storageIdsByLineIdMap;
} }
...@@ -48,4 +48,10 @@ public class UpdateSpaceInstitutionDetailInput { ...@@ -48,4 +48,10 @@ public class UpdateSpaceInstitutionDetailInput {
*/ */
@XText("间开制度井口配置") @XText("间开制度井口配置")
List<UpdateSpaceInstitutionWellheadInput> wellheadList; List<UpdateSpaceInstitutionWellheadInput> wellheadList;
/**
* 校准历史ID
*/
@XText("校准历史ID")
private String historyId;
} }
...@@ -221,7 +221,7 @@ public class ServiceUtil { ...@@ -221,7 +221,7 @@ public class ServiceUtil {
} }
} }
if (i == last) { if (i == last) {
//如果结束时间不是23:59,初始化最终关井时间 //如果结束时间不是24:00,初始化最终关井时间
if (!StringUtils.equals(BusinessConstant.END_OF_DAY_TIME, closeWellTime)) { if (!StringUtils.equals(BusinessConstant.END_OF_DAY_TIME, closeWellTime)) {
allList.add( allList.add(
SpaceOptimizeDateDuration.builder() SpaceOptimizeDateDuration.builder()
......
...@@ -83,6 +83,7 @@ ...@@ -83,6 +83,7 @@
start_interval start_interval
FROM space_institution_detail FROM space_institution_detail
WHERE is_current_basic = 0 WHERE is_current_basic = 0
AND is_deleted = 1
AND ou_id = #{ouId}), AND ou_id = #{ouId}),
long_period long_period
AS (SELECT row_number() over ( PARTITION BY institution_id ORDER BY optimize_deadline DESC ) AS line_number,id, AS (SELECT row_number() over ( PARTITION BY institution_id ORDER BY optimize_deadline DESC ) AS line_number,id,
...@@ -91,7 +92,8 @@ ...@@ -91,7 +92,8 @@
optimize_state, optimize_state,
optimize_deadline optimize_deadline
FROM space_optimize_long_period FROM space_optimize_long_period
WHERE institution_id IN (SELECT id FROM institution_detail)), WHERE institution_id IN (SELECT id FROM institution_detail)
AND is_deleted = 1),
mid_period mid_period
AS (SELECT row_number() over ( PARTITION BY institution_id ORDER BY optimize_deadline DESC ) AS line_number,id, AS (SELECT row_number() over ( PARTITION BY institution_id ORDER BY optimize_deadline DESC ) AS line_number,id,
institution_id, institution_id,
...@@ -99,7 +101,8 @@ ...@@ -99,7 +101,8 @@
optimize_state, optimize_state,
optimize_deadline optimize_deadline
FROM space_optimize_mid_period FROM space_optimize_mid_period
WHERE institution_id IN (SELECT id FROM institution_detail)) WHERE institution_id IN (SELECT id FROM institution_detail)
AND is_deleted = 1)
SELECT d.id, SELECT d.id,
d.ou_id, d.ou_id,
d.line_id, d.line_id,
......
...@@ -110,9 +110,9 @@ ...@@ -110,9 +110,9 @@
wellhead_id, wellhead_id,
well_number, well_number,
run_type_key, run_type_key,
interval_type_key, IFNULL( interval_type_key, '999' ) AS interval_type_key,
interval_describe, interval_describe,
start_seq, IFNULL( start_seq, 0 ) AS start_seq,
open_well_day, open_well_day,
close_well_day, close_well_day,
run_duration run_duration
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
JOIN space_optimize_long_period p ON d.id = p.institution_id JOIN space_optimize_long_period p ON d.id = p.institution_id
WHERE p.is_deleted = 1 WHERE p.is_deleted = 1
AND p.line_id = #{lineId} AND p.line_id = #{lineId}
ORDER BY p.optimize_deadline DESC ORDER BY p.create_time DESC
</select> </select>
<insert id="batchInsertList" parameterType="list"> <insert id="batchInsertList" parameterType="list">
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<result column="long_period_id" property="longPeriodId" jdbcType="VARCHAR"/> <result column="long_period_id" property="longPeriodId" jdbcType="VARCHAR"/>
<result column="wellhead_id" property="wellheadId" jdbcType="VARCHAR"/> <result column="wellhead_id" property="wellheadId" jdbcType="VARCHAR"/>
<result column="well_number" property="wellNumber" jdbcType="VARCHAR"/> <result column="well_number" property="wellNumber" jdbcType="VARCHAR"/>
<result column="start_seq" property="startSeq" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id id
...@@ -26,7 +27,8 @@ ...@@ -26,7 +27,8 @@
modify_time, modify_time,
long_period_id, long_period_id,
wellhead_id, wellhead_id,
well_number well_number,
start_seq
</sql> </sql>
<select id="selectOne" parameterType="pps.core.space.entity.SpaceOptimizeLongWellheadView" <select id="selectOne" parameterType="pps.core.space.entity.SpaceOptimizeLongWellheadView"
resultMap="BaseResultMap"> resultMap="BaseResultMap">
......
...@@ -60,6 +60,6 @@ ...@@ -60,6 +60,6 @@
JOIN space_optimize_mid_period p ON d.id = p.institution_id JOIN space_optimize_mid_period p ON d.id = p.institution_id
WHERE p.is_deleted = 1 WHERE p.is_deleted = 1
AND p.line_id = #{lineId} AND p.line_id = #{lineId}
ORDER BY p.optimize_deadline DESC ORDER BY p.create_time DESC
</select> </select>
</mapper> </mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="pps.core.space.mapper.SpaceOptimizeMidWellheadViewMapper">
<resultMap id="BaseResultMap" type="pps.core.space.entity.SpaceOptimizeMidWellheadView">
<id column="id" property="id" jdbcType="VARCHAR"/>
<result column="is_deleted" property="isDeleted" jdbcType="INTEGER"/>
<result column="create_by_id" property="createById" jdbcType="VARCHAR"/>
<result column="create_by_name" property="createByName" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="DATE"/>
<result column="modify_by_id" property="modifyById" jdbcType="VARCHAR"/>
<result column="modify_by_name" property="modifyByName" jdbcType="VARCHAR"/>
<result column="modify_time" property="modifyTime" jdbcType="DATE"/>
<result column="mid_period_id" property="midPeriodId" jdbcType="VARCHAR"/>
<result column="wellhead_id" property="wellheadId" jdbcType="VARCHAR"/>
<result column="well_number" property="wellNumber" jdbcType="VARCHAR"/>
<result column="start_seq" property="startSeq" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id
,
is_deleted,
create_by_id,
create_by_name,
create_time,
modify_by_id,
modify_by_name,
modify_time,
mid_period_id,
wellhead_id,
well_number,
start_seq
</sql>
<select id="selectOne" parameterType="pps.core.space.entity.SpaceOptimizeMidWellheadView" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from space_optimize_mid_wellhead
where
id=#{id}
</select>
<select id="selectList" parameterType="pps.core.space.entity.SpaceOptimizeMidWellheadView"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from space_optimize_mid_wellhead
where
id=#{id}
</select>
</mapper>
\ No newline at end of file
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<result column="short_period_id" property="shortPeriodId" jdbcType="VARCHAR"/> <result column="short_period_id" property="shortPeriodId" jdbcType="VARCHAR"/>
<result column="wellhead_id" property="wellheadId" jdbcType="VARCHAR"/> <result column="wellhead_id" property="wellheadId" jdbcType="VARCHAR"/>
<result column="well_number" property="wellNumber" jdbcType="VARCHAR"/> <result column="well_number" property="wellNumber" jdbcType="VARCHAR"/>
<result column="start_seq" property="startSeq" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id id
...@@ -26,7 +27,8 @@ ...@@ -26,7 +27,8 @@
modify_time, modify_time,
short_period_id, short_period_id,
wellhead_id, wellhead_id,
well_number well_number,
start_seq
</sql> </sql>
<select id="selectOne" parameterType="pps.core.space.entity.SpaceOptimizeShortWellheadView" <select id="selectOne" parameterType="pps.core.space.entity.SpaceOptimizeShortWellheadView"
resultMap="BaseResultMap"> resultMap="BaseResultMap">
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<insert id="longWellheadBatchInsertList" parameterType="list"> <insert id="longWellheadBatchInsertList" parameterType="list">
INSERT INTO space_optimize_long_wellhead ( id, create_by_id, create_by_name, create_time, INSERT INTO space_optimize_long_wellhead ( id, create_by_id, create_by_name, create_time,
modify_by_id, modify_by_name, modify_time, long_period_id, wellhead_id, well_number ) modify_by_id, modify_by_name, modify_time, long_period_id, wellhead_id, well_number, start_seq)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
...@@ -40,7 +40,8 @@ ...@@ -40,7 +40,8 @@
#{item.modifyTime}, #{item.modifyTime},
#{item.periodId}, #{item.periodId},
#{item.wellheadId}, #{item.wellheadId},
#{item.wellNumber} #{item.wellNumber},
#{item.startSeq}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -115,7 +116,7 @@ ...@@ -115,7 +116,7 @@
<insert id="midWellheadBatchInsertList" parameterType="list"> <insert id="midWellheadBatchInsertList" parameterType="list">
INSERT INTO space_optimize_mid_wellhead ( id, create_by_id, create_by_name, create_time, INSERT INTO space_optimize_mid_wellhead ( id, create_by_id, create_by_name, create_time,
modify_by_id, modify_by_name, modify_time, mid_period_id, wellhead_id, well_number ) modify_by_id, modify_by_name, modify_time, mid_period_id, wellhead_id, well_number, start_seq)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
...@@ -128,7 +129,8 @@ ...@@ -128,7 +129,8 @@
#{item.modifyTime}, #{item.modifyTime},
#{item.periodId}, #{item.periodId},
#{item.wellheadId}, #{item.wellheadId},
#{item.wellNumber} #{item.wellNumber},
#{item.startSeq}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -201,7 +203,7 @@ ...@@ -201,7 +203,7 @@
<insert id="shortWellheadBatchInsertList" parameterType="list"> <insert id="shortWellheadBatchInsertList" parameterType="list">
INSERT INTO space_optimize_short_wellhead (id, create_by_id, create_by_name, create_time, modify_by_id, 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) modify_by_name, modify_time, short_period_id, wellhead_id, well_number, start_seq)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
...@@ -214,7 +216,8 @@ ...@@ -214,7 +216,8 @@
#{item.modifyTime}, #{item.modifyTime},
#{item.periodId}, #{item.periodId},
#{item.wellheadId}, #{item.wellheadId},
#{item.wellNumber} #{item.wellNumber},
#{item.startSeq}
) )
</foreach> </foreach>
</insert> </insert>
......
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