Commit 73c506f7 authored by tianchao's avatar tianchao
parents 3fb88d48 9b72d85e
...@@ -18,6 +18,11 @@ public class BusinessConstant { ...@@ -18,6 +18,11 @@ public class BusinessConstant {
*/ */
public static final Integer ZERO = 0; public static final Integer ZERO = 0;
/**
* 10
*/
public static final Integer TEN = 10;
/** /**
* 初始父级组织机构ID * 初始父级组织机构ID
*/ */
...@@ -59,4 +64,9 @@ public class BusinessConstant { ...@@ -59,4 +64,9 @@ public class BusinessConstant {
* 校准策略 * 校准策略
*/ */
public static final String CALIBRATION_STRATEGY = "calibration_strategy"; public static final String CALIBRATION_STRATEGY = "calibration_strategy";
/**
* 发电类型
*/
public static final String GENERATION_TYPE = "generation_type";
} }
...@@ -5,6 +5,8 @@ import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInpu ...@@ -5,6 +5,8 @@ import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInpu
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput; import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput; import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput; 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.DynamicQueryBasePowerLinePlantOutput;
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 xstartup.annotation.XService; import xstartup.annotation.XService;
...@@ -26,35 +28,46 @@ import xstartup.feature.api.annotation.XApiPost; ...@@ -26,35 +28,46 @@ import xstartup.feature.api.annotation.XApiPost;
public interface IBasePowerLineCloudService { public interface IBasePowerLineCloudService {
/** /**
* 输电线路配置模块--通过ID查询线路基本信息 * 输电线路配置Cloud模块--通过ID查询线路基本信息
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
* @return {@link XSingleResult}<{@link GetBasePowerLineViewOutput}> * @return {@link XSingleResult}<{@link GetBasePowerLineViewOutput}>
*/ */
@XText("输电线路配置模块--通过ID查询线路基本信息") @XText("输电线路配置Cloud模块--通过ID查询线路基本信息")
@XApiGet @XApiGet
XSingleResult<GetBasePowerLineViewOutput> getBasePowerLineById(XContext context, GetBasePowerLineInput input); XSingleResult<GetBasePowerLineViewOutput> getBasePowerLineById(XContext context, GetBasePowerLineInput input);
/** /**
* 输电线路配置模块--条件查询线路基本信息列表 * 输电线路配置Cloud模块--条件查询线路基本信息列表
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineOutput}> * @return {@link XListResult}<{@link DynamicQueryBasePowerLineOutput}>
*/ */
@XText("输电线路配置模块--条件查询线路基本信息列表") @XText("输电线路配置Cloud模块--条件查询线路基本信息列表")
@XApiPost @XApiPost
XListResult<DynamicQueryBasePowerLineOutput> getBasePowerLineList(XContext context, DynamicQueryBasePowerLineInput input); XListResult<DynamicQueryBasePowerLineOutput> getBasePowerLineList(XContext context, DynamicQueryBasePowerLineInput input);
/** /**
* 输电线路配置模块--条件查询线路关联井口信息 * 输电线路配置Cloud模块--条件查询线路关联井口信息
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineWellheadViewOutput}> * @return {@link XListResult}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/ */
@XText("输电线路配置模块--条件查询线路关联井口信息") @XText("输电线路配置Cloud模块--条件查询线路关联井口信息")
@XApiPost @XApiPost
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input); XListResult<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input);
/**
* 输电线路配置Cloud模块--条件查询线路关联电站信息
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLinePlantOutput}>
*/
@XText("输电线路配置Cloud模块--条件查询线路关联电站信息")
@XApiPost
XListResult<DynamicQueryBasePowerLinePlantOutput> queryPowerLinePlantListByParam(XContext context, DynamicQueryBasePowerLinePlantInput input);
} }
...@@ -28,6 +28,6 @@ public interface IBasePriceStrategyCloudService { ...@@ -28,6 +28,6 @@ public interface IBasePriceStrategyCloudService {
*/ */
@XApiAnonymous @XApiAnonymous
@XApiGet @XApiGet
@XText("市电峰谷策略--策略配置详情列表") @XText("市电峰谷配置Cloud模块--策略配置详情列表")
XListResult<GetBasePriceStrategyDetailOutput> queryStrategyDetailList(XContext context, GetBasePriceStrategyDetailInput input); XListResult<GetBasePriceStrategyDetailOutput> queryStrategyDetailList(XContext context, GetBasePriceStrategyDetailInput input);
} }
package pps.cloud.base.service;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XListResult;
import xstartup.feature.api.annotation.XApiPost;
/**
* 井口配置Cloud模块
*
* @author ZWT
* @date 2023/09/13 17:26
*/
@XService
@XText("井口配置Cloud模块")
public interface IBaseWellheadCloudService {
/**
* 井口配置Cloud模块--条件查询井口基本信息列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBaseWellheadOutput}>
*/
@XText("井口配置Cloud模块--条件查询井口基本信息列表")
@XApiPost
XListResult<DynamicQueryBaseWellheadOutput> queryBaseWellheadListByParam(XContext context, DynamicQueryBaseWellheadInput input);
}
\ No newline at end of file
package pps.cloud.base.service.data.base_power_line_plant;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.util.Collection;
/**
* 输电线路光伏配置
*
* @author ZWT
* @date 2023/08/25
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DynamicQueryBasePowerLinePlantInput {
@XText("光伏电站ID")
private String plantId;
@XText("线路ID集合")
private Collection<String> lineIds;
}
package pps.cloud.base.service.data.base_power_line_plant;
import lombok.Data;
import xstartup.annotation.XText;
/**
* 输电线路光伏配置
*
* @author ZWT
* @date 2023/08/25
*/
@Data
public class DynamicQueryBasePowerLinePlantOutput {
@XText("光伏电站ID")
private String plantId;
@XText("线路ID")
private String lineId;
}
package pps.cloud.base.service.data.base_wellhead;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.util.List;
/**
* 井口配置Cloud模块
*
* @author ZWT
* @date 2023/09/13
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DynamicQueryBaseWellheadInput {
@XText("井口ID")
private String wellheadId;
@XText("井口ID集合")
private List<String> wellheadIds;
}
package pps.cloud.base.service.data.base_wellhead;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 井口配置Cloud模块
*
* @author ZWT
* @date 2023/09/13
*/
@Data
public class DynamicQueryBaseWellheadOutput {
@XText("ID")
private String id;
@XText("组织机构ID")
private String ouId;
@XText("井号")
private String wellNumber;
@XText("运行类型key(字典获取)")
private String runTypeKey;
@XText("运行功率(KW)")
private BigDecimal serviceRating;
}
package pps.core.base.enums;
import xstartup.error.XError;
/**
* 业务错误
*
* @author ZWT
* @date 2023/09/12
*/
public enum BusinessError implements XError {
DieselReference(2000, "当前柴发设备已被引用"),
StorageReference(2001, "当前储能设备已被引用"),
PhotovoltaicReference(2002, "当前光伏电站已被引用"),
LineReference(2003, "当前线路已被引用"),
StrategyReference(2004, "当前策略已被引用"),
WellheadReferenceLine(2005, "当前井口已被线路引用"),
WellheadReferenceSpace(2006, "当前井口已被间开引用"),
;
private int code;
private String text;
BusinessError(int code, String text) {
this.code = code;
this.text = text;
}
@Override
public int getCode() {
return 0;
}
@Override
public String getText() {
return null;
}
}
...@@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -6,9 +6,11 @@ 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 pps.core.base.entity.BaseDieselGeneratorEnt; import pps.core.base.entity.BaseDieselGeneratorEnt;
import pps.core.base.entity.BasePowerLineDieselEnt; import pps.core.base.entity.BasePowerLineDieselEnt;
import pps.core.base.enums.BusinessError;
import pps.core.base.mapper.BaseDieselGeneratorMapper; import pps.core.base.mapper.BaseDieselGeneratorMapper;
import pps.core.base.mapper.BasePowerLineDieselMapper; import pps.core.base.mapper.BasePowerLineDieselMapper;
import pps.core.base.service.data.base_diesel_generator.*; import pps.core.base.service.data.base_diesel_generator.*;
import pps.core.base.utils.ServiceUtil;
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 pps.core.common.session.PpsUserSession; import pps.core.common.session.PpsUserSession;
...@@ -25,6 +27,7 @@ import xstartup.feature.api.annotation.XApiAnonymous; ...@@ -25,6 +27,7 @@ import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet; import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost; import xstartup.feature.api.annotation.XApiPost;
import xstartup.feature.mybatis.helper.XMapperHelper; import xstartup.feature.mybatis.helper.XMapperHelper;
import xstartup.helper.XTransactionHelper;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -36,32 +39,30 @@ import java.util.Objects; ...@@ -36,32 +39,30 @@ import java.util.Objects;
* @date 2023/09/08 * @date 2023/09/08
*/ */
@XService @XService
public class BaseDieselGeneratorService extends BaseService { public class BaseDieselGeneratorService {
@XText("新增") @XText("新增")
@XApiAnonymous @XApiAnonymous
@XApiPost @XApiPost
public XServiceResult createBaseDieselGenerator(XContext context, CreateBaseDieselGeneratorInput input) { public XServiceResult createBaseDieselGenerator(XContext context, CreateBaseDieselGeneratorInput input) {
return XTransactionHelper.begin(context, () -> {
BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class); BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class);
BaseDieselGeneratorEnt entity = new BaseDieselGeneratorEnt(); BaseDieselGeneratorEnt entity = XCopyUtils.copyNewObject(input, BaseDieselGeneratorEnt.class);
XCopyUtils.copyObject(input, entity);
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.insert(entity); mapper.insert(entity);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
@XText("更新") @XText("更新")
@XApiAnonymous @XApiAnonymous
@XApiPost @XApiPost
public XServiceResult updateBaseDieselGenerator(XContext context, UpdateBaseDieselGeneratorInput input) { public XServiceResult updateBaseDieselGenerator(XContext context, UpdateBaseDieselGeneratorInput input) {
return XTransactionHelper.begin(context, () -> {
BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class); BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class);
QueryWrapper<BaseDieselGeneratorEnt> queryWrapper = new QueryWrapper<>(); BaseDieselGeneratorEnt entity = this.selectOneByDieselId(input.getId(), mapper);
queryWrapper.lambda() if (Objects.isNull(entity)) {
.eq(BaseDieselGeneratorEnt::getId, input.getId())
.eq(BaseDieselGeneratorEnt::getIsDeleted, BusinessConstant.ONE);
BaseDieselGeneratorEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XServiceResult.error(context, XError.NotFound); return XServiceResult.error(context, XError.NotFound);
} }
XCopyUtils.copyObject(input, entity); XCopyUtils.copyObject(input, entity);
...@@ -69,6 +70,7 @@ public class BaseDieselGeneratorService extends BaseService { ...@@ -69,6 +70,7 @@ public class BaseDieselGeneratorService extends BaseService {
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.updateById(entity); mapper.updateById(entity);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
@XText("删除") @XText("删除")
...@@ -77,24 +79,22 @@ public class BaseDieselGeneratorService extends BaseService { ...@@ -77,24 +79,22 @@ public class BaseDieselGeneratorService extends BaseService {
public XServiceResult deleteBaseDieselGenerator(XContext context, DeleteBaseDieselGeneratorInput input) { public XServiceResult deleteBaseDieselGenerator(XContext context, DeleteBaseDieselGeneratorInput input) {
String dieselId = input.getId(); String dieselId = input.getId();
if (this.checkDieselIsReference(context, dieselId)) { if (this.checkDieselIsReference(context, dieselId)) {
return XServiceResult.error(992, "当前柴发设备已被引用"); return XServiceResult.error(context, BusinessError.DieselReference);
} }
return XTransactionHelper.begin(context, () -> {
BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class); BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class);
QueryWrapper<BaseDieselGeneratorEnt> queryWrapper = new QueryWrapper<>(); BaseDieselGeneratorEnt entity = this.selectOneByDieselId(dieselId, mapper);
queryWrapper.lambda()
.eq(BaseDieselGeneratorEnt::getId, input.getId())
.eq(BaseDieselGeneratorEnt::getIsDeleted, BusinessConstant.ONE);
BaseDieselGeneratorEnt entity = mapper.selectOne(queryWrapper);
if (Objects.isNull(entity)) { if (Objects.isNull(entity)) {
return XServiceResult.error(context, XError.NotFound); return XServiceResult.error(context, XError.NotFound);
} }
entity = new BaseDieselGeneratorEnt(); entity = new BaseDieselGeneratorEnt();
entity.setId(input.getId()); entity.setId(dieselId);
entity.setIsDeleted(BusinessConstant.ZERO); entity.setIsDeleted(BusinessConstant.ZERO);
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.updateById(entity); mapper.updateById(entity);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
@XText("根据id获取详情") @XText("根据id获取详情")
...@@ -102,16 +102,11 @@ public class BaseDieselGeneratorService extends BaseService { ...@@ -102,16 +102,11 @@ public class BaseDieselGeneratorService extends BaseService {
@XApiGet @XApiGet
public XSingleResult<GetBaseDieselGeneratorOutput> getBaseDieselGenerator(XContext context, GetBaseDieselGeneratorInput input) { public XSingleResult<GetBaseDieselGeneratorOutput> getBaseDieselGenerator(XContext context, GetBaseDieselGeneratorInput input) {
BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class); BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class);
QueryWrapper<BaseDieselGeneratorEnt> queryWrapper = new QueryWrapper<>(); BaseDieselGeneratorEnt entity = this.selectOneByDieselId(input.getId(), mapper);
queryWrapper.lambda() if (Objects.isNull(entity)) {
.eq(BaseDieselGeneratorEnt::getId, input.getId())
.eq(BaseDieselGeneratorEnt::getIsDeleted, BusinessConstant.ONE);
BaseDieselGeneratorEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XSingleResult.error(context, XError.NotFound); return XSingleResult.error(context, XError.NotFound);
} }
GetBaseDieselGeneratorOutput output = new GetBaseDieselGeneratorOutput(); GetBaseDieselGeneratorOutput output = XCopyUtils.copyNewObject(entity, GetBaseDieselGeneratorOutput.class);
XCopyUtils.copyObject(entity, output);
return XSingleResult.success(output); return XSingleResult.success(output);
} }
...@@ -124,7 +119,7 @@ public class BaseDieselGeneratorService extends BaseService { ...@@ -124,7 +119,7 @@ public class BaseDieselGeneratorService extends BaseService {
String deviceName = input.getDeviceName(); String deviceName = input.getDeviceName();
String excludeIdFlag = input.getExcludeIdFlag(); String excludeIdFlag = input.getExcludeIdFlag();
BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class); BaseDieselGeneratorMapper mapper = context.getBean(BaseDieselGeneratorMapper.class);
List<String> allListByOuId = this.getAllListByOuId(context, input.getOuId()); List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, ouId);
QueryWrapper<BaseDieselGeneratorEnt> queryWrapper = new QueryWrapper<>(); QueryWrapper<BaseDieselGeneratorEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda() queryWrapper.lambda()
.notExists("1".equals(excludeIdFlag), "SELECT 1 FROM base_power_line_diesel w WHERE w.ou_id = {0} AND base_diesel_generator.id = w.diesel_id AND w.is_deleted = 1", input.getOuId()) .notExists("1".equals(excludeIdFlag), "SELECT 1 FROM base_power_line_diesel w WHERE w.ou_id = {0} AND base_diesel_generator.id = w.diesel_id AND w.is_deleted = 1", input.getOuId())
...@@ -153,4 +148,17 @@ public class BaseDieselGeneratorService extends BaseService { ...@@ -153,4 +148,17 @@ public class BaseDieselGeneratorService extends BaseService {
); );
return count > 0; return count > 0;
} }
/**
* 通过设备ID查询设备信息
*
* @param dieselId 设备id
* @param mapper 映射器
* @return {@link BaseDieselGeneratorEnt}
*/
private BaseDieselGeneratorEnt selectOneByDieselId(String dieselId, BaseDieselGeneratorMapper mapper) {
return mapper.selectOne(new LambdaQueryWrapper<BaseDieselGeneratorEnt>()
.eq(BaseModel::getId, dieselId)
);
}
} }
\ No newline at end of file
...@@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -6,9 +6,11 @@ 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 pps.core.base.entity.BaseEnergyStorageDeviceEnt; import pps.core.base.entity.BaseEnergyStorageDeviceEnt;
import pps.core.base.entity.BasePowerLineStorageEnt; import pps.core.base.entity.BasePowerLineStorageEnt;
import pps.core.base.enums.BusinessError;
import pps.core.base.mapper.BaseEnergyStorageDeviceMapper; import pps.core.base.mapper.BaseEnergyStorageDeviceMapper;
import pps.core.base.mapper.BasePowerLineStorageMapper; import pps.core.base.mapper.BasePowerLineStorageMapper;
import pps.core.base.service.data.base_energy_storage_device.*; import pps.core.base.service.data.base_energy_storage_device.*;
import pps.core.base.utils.ServiceUtil;
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 pps.core.common.session.PpsUserSession; import pps.core.common.session.PpsUserSession;
...@@ -25,6 +27,7 @@ import xstartup.feature.api.annotation.XApiAnonymous; ...@@ -25,6 +27,7 @@ import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet; import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost; import xstartup.feature.api.annotation.XApiPost;
import xstartup.feature.mybatis.helper.XMapperHelper; import xstartup.feature.mybatis.helper.XMapperHelper;
import xstartup.helper.XTransactionHelper;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -36,32 +39,30 @@ import java.util.Objects; ...@@ -36,32 +39,30 @@ import java.util.Objects;
* @date 2023/09/08 * @date 2023/09/08
*/ */
@XService @XService
public class BaseEnergyStorageDeviceService extends BaseService { public class BaseEnergyStorageDeviceService {
@XText("新增") @XText("新增")
@XApiAnonymous @XApiAnonymous
@XApiPost @XApiPost
public XServiceResult createBaseEnergyStorageDevice(XContext context, CreateBaseEnergyStorageDeviceInput input) { public XServiceResult createBaseEnergyStorageDevice(XContext context, CreateBaseEnergyStorageDeviceInput input) {
return XTransactionHelper.begin(context, () -> {
BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class); BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class);
BaseEnergyStorageDeviceEnt entity = new BaseEnergyStorageDeviceEnt(); BaseEnergyStorageDeviceEnt entity = XCopyUtils.copyNewObject(input, BaseEnergyStorageDeviceEnt.class);
XCopyUtils.copyObject(input, entity);
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.insert(entity); mapper.insert(entity);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
@XText("更新") @XText("更新")
@XApiAnonymous @XApiAnonymous
@XApiPost @XApiPost
public XServiceResult updateBaseEnergyStorageDevice(XContext context, UpdateBaseEnergyStorageDeviceInput input) { public XServiceResult updateBaseEnergyStorageDevice(XContext context, UpdateBaseEnergyStorageDeviceInput input) {
return XTransactionHelper.begin(context, () -> {
BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class); BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class);
QueryWrapper<BaseEnergyStorageDeviceEnt> queryWrapper = new QueryWrapper<>(); BaseEnergyStorageDeviceEnt entity = this.selectOneByDeviceId(input.getId(), mapper);
queryWrapper.lambda() if (Objects.isNull(entity)) {
.eq(BaseEnergyStorageDeviceEnt::getId, input.getId())
.eq(BaseEnergyStorageDeviceEnt::getIsDeleted, BusinessConstant.ONE);
BaseEnergyStorageDeviceEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XServiceResult.error(context, XError.NotFound); return XServiceResult.error(context, XError.NotFound);
} }
XCopyUtils.copyObject(input, entity); XCopyUtils.copyObject(input, entity);
...@@ -69,6 +70,7 @@ public class BaseEnergyStorageDeviceService extends BaseService { ...@@ -69,6 +70,7 @@ public class BaseEnergyStorageDeviceService extends BaseService {
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.updateById(entity); mapper.updateById(entity);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
@XText("删除") @XText("删除")
...@@ -77,24 +79,22 @@ public class BaseEnergyStorageDeviceService extends BaseService { ...@@ -77,24 +79,22 @@ public class BaseEnergyStorageDeviceService extends BaseService {
public XServiceResult deleteBaseEnergyStorageDevice(XContext context, DeleteBaseEnergyStorageDeviceInput input) { public XServiceResult deleteBaseEnergyStorageDevice(XContext context, DeleteBaseEnergyStorageDeviceInput input) {
String storageId = input.getId(); String storageId = input.getId();
if (this.checkStorageIsReference(context, storageId)) { if (this.checkStorageIsReference(context, storageId)) {
return XServiceResult.error(992, "当前储能设备已被引用"); return XServiceResult.error(context, BusinessError.StorageReference);
} }
return XTransactionHelper.begin(context, () -> {
BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class); BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class);
QueryWrapper<BaseEnergyStorageDeviceEnt> queryWrapper = new QueryWrapper<>(); BaseEnergyStorageDeviceEnt entity = this.selectOneByDeviceId(storageId, mapper);
queryWrapper.lambda()
.eq(BaseEnergyStorageDeviceEnt::getId, input.getId())
.eq(BaseEnergyStorageDeviceEnt::getIsDeleted, BusinessConstant.ONE);
BaseEnergyStorageDeviceEnt entity = mapper.selectOne(queryWrapper);
if (Objects.isNull(entity)) { if (Objects.isNull(entity)) {
return XServiceResult.error(context, XError.NotFound); return XServiceResult.error(context, XError.NotFound);
} }
entity = new BaseEnergyStorageDeviceEnt(); entity = new BaseEnergyStorageDeviceEnt();
entity.setId(input.getId()); entity.setId(storageId);
entity.setIsDeleted(BusinessConstant.ZERO); entity.setIsDeleted(BusinessConstant.ZERO);
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.updateById(entity); mapper.updateById(entity);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
@XText("根据id获取详情") @XText("根据id获取详情")
...@@ -102,16 +102,11 @@ public class BaseEnergyStorageDeviceService extends BaseService { ...@@ -102,16 +102,11 @@ public class BaseEnergyStorageDeviceService extends BaseService {
@XApiGet @XApiGet
public XSingleResult<GetBaseEnergyStorageDeviceOutput> getBaseEnergyStorageDevice(XContext context, GetBaseEnergyStorageDeviceInput input) { public XSingleResult<GetBaseEnergyStorageDeviceOutput> getBaseEnergyStorageDevice(XContext context, GetBaseEnergyStorageDeviceInput input) {
BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class); BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class);
QueryWrapper<BaseEnergyStorageDeviceEnt> queryWrapper = new QueryWrapper<>(); BaseEnergyStorageDeviceEnt entity = this.selectOneByDeviceId(input.getId(), mapper);
queryWrapper.lambda() if (Objects.isNull(entity)) {
.eq(BaseEnergyStorageDeviceEnt::getId, input.getId())
.eq(BaseEnergyStorageDeviceEnt::getIsDeleted, BusinessConstant.ONE);
BaseEnergyStorageDeviceEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XSingleResult.error(context, XError.NotFound); return XSingleResult.error(context, XError.NotFound);
} }
GetBaseEnergyStorageDeviceOutput output = new GetBaseEnergyStorageDeviceOutput(); GetBaseEnergyStorageDeviceOutput output = XCopyUtils.copyNewObject(entity, GetBaseEnergyStorageDeviceOutput.class);
XCopyUtils.copyObject(entity, output);
return XSingleResult.success(output); return XSingleResult.success(output);
} }
...@@ -124,7 +119,7 @@ public class BaseEnergyStorageDeviceService extends BaseService { ...@@ -124,7 +119,7 @@ public class BaseEnergyStorageDeviceService extends BaseService {
String deviceName = input.getDeviceName(); String deviceName = input.getDeviceName();
String excludeIdFlag = input.getExcludeIdFlag(); String excludeIdFlag = input.getExcludeIdFlag();
BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class); BaseEnergyStorageDeviceMapper mapper = context.getBean(BaseEnergyStorageDeviceMapper.class);
List<String> allListByOuId = this.getAllListByOuId(context, input.getOuId()); List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, ouId);
QueryWrapper<BaseEnergyStorageDeviceEnt> queryWrapper = new QueryWrapper<>(); QueryWrapper<BaseEnergyStorageDeviceEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda() queryWrapper.lambda()
.notExists("1".equals(excludeIdFlag), "SELECT 1 FROM base_power_line_storage w WHERE w.ou_id = {0} AND base_energy_storage_device.id = w.storage_id AND w.is_deleted = 1", input.getOuId()) .notExists("1".equals(excludeIdFlag), "SELECT 1 FROM base_power_line_storage w WHERE w.ou_id = {0} AND base_energy_storage_device.id = w.storage_id AND w.is_deleted = 1", input.getOuId())
...@@ -153,4 +148,17 @@ public class BaseEnergyStorageDeviceService extends BaseService { ...@@ -153,4 +148,17 @@ public class BaseEnergyStorageDeviceService extends BaseService {
); );
return count > 0; return count > 0;
} }
/**
* 通过设备ID查询设备信息
*
* @param deviceId 设备id
* @param mapper 映射器
* @return {@link BaseEnergyStorageDeviceEnt}
*/
private BaseEnergyStorageDeviceEnt selectOneByDeviceId(String deviceId, BaseEnergyStorageDeviceMapper mapper) {
return mapper.selectOne(new LambdaQueryWrapper<BaseEnergyStorageDeviceEnt>()
.eq(BaseModel::getId, deviceId)
);
}
} }
\ No newline at end of file
...@@ -5,10 +5,13 @@ import cn.hutool.core.util.StrUtil; ...@@ -5,10 +5,13 @@ 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 pps.core.base.entity.BasePhotovoltaicPlantEnt; import pps.core.base.entity.BasePhotovoltaicPlantEnt;
import pps.core.base.entity.BasePowerLineEnt;
import pps.core.base.entity.BasePowerLinePlantEnt; import pps.core.base.entity.BasePowerLinePlantEnt;
import pps.core.base.enums.BusinessError;
import pps.core.base.mapper.BasePhotovoltaicPlantMapper; import pps.core.base.mapper.BasePhotovoltaicPlantMapper;
import pps.core.base.mapper.BasePowerLinePlantMapper; import pps.core.base.mapper.BasePowerLinePlantMapper;
import pps.core.base.service.data.base_photovoltaic_plant.*; import pps.core.base.service.data.base_photovoltaic_plant.*;
import pps.core.base.utils.ServiceUtil;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
import pps.core.common.constant.UserConstant; import pps.core.common.constant.UserConstant;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
...@@ -31,6 +34,7 @@ import xstartup.feature.api.annotation.XApiAnonymous; ...@@ -31,6 +34,7 @@ import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet; import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost; import xstartup.feature.api.annotation.XApiPost;
import xstartup.feature.mybatis.helper.XMapperHelper; import xstartup.feature.mybatis.helper.XMapperHelper;
import xstartup.helper.XTransactionHelper;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -43,32 +47,30 @@ import java.util.Objects; ...@@ -43,32 +47,30 @@ import java.util.Objects;
* @date 2023/09/08 * @date 2023/09/08
*/ */
@XService @XService
public class BasePhotovoltaicPlantService extends BaseService { public class BasePhotovoltaicPlantService {
@XText("新增") @XText("新增")
@XApiAnonymous @XApiAnonymous
@XApiPost @XApiPost
public XServiceResult createBasePhotovoltaicPlant(XContext context, CreateBasePhotovoltaicPlantInput input) { public XServiceResult createBasePhotovoltaicPlant(XContext context, CreateBasePhotovoltaicPlantInput input) {
return XTransactionHelper.begin(context, () -> {
BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class); BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class);
BasePhotovoltaicPlantEnt entity = new BasePhotovoltaicPlantEnt(); BasePhotovoltaicPlantEnt entity = XCopyUtils.copyNewObject(input, BasePhotovoltaicPlantEnt.class);
XCopyUtils.copyObject(input, entity);
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.insert(entity); mapper.insert(entity);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
@XText("更新") @XText("更新")
@XApiAnonymous @XApiAnonymous
@XApiPost @XApiPost
public XServiceResult updateBasePhotovoltaicPlant(XContext context, UpdateBasePhotovoltaicPlantInput input) { public XServiceResult updateBasePhotovoltaicPlant(XContext context, UpdateBasePhotovoltaicPlantInput input) {
return XTransactionHelper.begin(context, () -> {
BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class); BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class);
QueryWrapper<BasePhotovoltaicPlantEnt> queryWrapper = new QueryWrapper<>(); BasePhotovoltaicPlantEnt entity = this.selectOneByPlantId(input.getId(), mapper);
queryWrapper.lambda() if (Objects.isNull(entity)) {
.eq(BasePhotovoltaicPlantEnt::getId, input.getId())
.eq(BasePhotovoltaicPlantEnt::getIsDeleted, BusinessConstant.ONE);
BasePhotovoltaicPlantEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XServiceResult.error(context, XError.NotFound); return XServiceResult.error(context, XError.NotFound);
} }
XCopyUtils.copyObject(input, entity); XCopyUtils.copyObject(input, entity);
...@@ -76,6 +78,7 @@ public class BasePhotovoltaicPlantService extends BaseService { ...@@ -76,6 +78,7 @@ public class BasePhotovoltaicPlantService extends BaseService {
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.updateById(entity); mapper.updateById(entity);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
@XText("删除") @XText("删除")
...@@ -84,24 +87,22 @@ public class BasePhotovoltaicPlantService extends BaseService { ...@@ -84,24 +87,22 @@ public class BasePhotovoltaicPlantService extends BaseService {
public XServiceResult deleteBasePhotovoltaicPlant(XContext context, DeleteBasePhotovoltaicPlantInput input) { public XServiceResult deleteBasePhotovoltaicPlant(XContext context, DeleteBasePhotovoltaicPlantInput input) {
String plantId = input.getId(); String plantId = input.getId();
if (this.checkPhotovoltaicIsReference(context, plantId)) { if (this.checkPhotovoltaicIsReference(context, plantId)) {
return XServiceResult.error(992, "当前光伏电站已被引用"); return XServiceResult.error(context, BusinessError.PhotovoltaicReference);
} }
return XTransactionHelper.begin(context, () -> {
BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class); BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class);
QueryWrapper<BasePhotovoltaicPlantEnt> queryWrapper = new QueryWrapper<>(); BasePhotovoltaicPlantEnt entity = this.selectOneByPlantId(plantId, mapper);
queryWrapper.lambda()
.eq(BasePhotovoltaicPlantEnt::getId, plantId)
.eq(BasePhotovoltaicPlantEnt::getIsDeleted, BusinessConstant.ONE);
BasePhotovoltaicPlantEnt entity = mapper.selectOne(queryWrapper);
if (Objects.isNull(entity)) { if (Objects.isNull(entity)) {
return XServiceResult.error(context, XError.NotFound); return XServiceResult.error(context, XError.NotFound);
} }
entity = new BasePhotovoltaicPlantEnt(); entity = new BasePhotovoltaicPlantEnt();
entity.setId(input.getId()); entity.setId(plantId);
entity.setIsDeleted(BusinessConstant.ZERO); entity.setIsDeleted(BusinessConstant.ZERO);
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.updateById(entity); mapper.updateById(entity);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
@XText("根据id获取详情") @XText("根据id获取详情")
...@@ -109,23 +110,19 @@ public class BasePhotovoltaicPlantService extends BaseService { ...@@ -109,23 +110,19 @@ public class BasePhotovoltaicPlantService extends BaseService {
@XApiGet @XApiGet
public XSingleResult<GetBasePhotovoltaicPlantOutput> getBasePhotovoltaicPlant(XContext context, GetBasePhotovoltaicPlantInput input) { public XSingleResult<GetBasePhotovoltaicPlantOutput> getBasePhotovoltaicPlant(XContext context, GetBasePhotovoltaicPlantInput input) {
BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class); BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class);
QueryWrapper<BasePhotovoltaicPlantEnt> queryWrapper = new QueryWrapper<>(); BasePhotovoltaicPlantEnt entity = this.selectOneByPlantId(input.getId(), mapper);
queryWrapper.lambda() if (Objects.isNull(entity)) {
.eq(BasePhotovoltaicPlantEnt::getId, input.getId())
.eq(BasePhotovoltaicPlantEnt::getIsDeleted, BusinessConstant.ONE);
BasePhotovoltaicPlantEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XSingleResult.error(context, XError.NotFound); return XSingleResult.error(context, XError.NotFound);
} }
GetBasePhotovoltaicPlantOutput output = new GetBasePhotovoltaicPlantOutput(); GetBasePhotovoltaicPlantOutput output = XCopyUtils.copyNewObject(entity, GetBasePhotovoltaicPlantOutput.class);
XCopyUtils.copyObject(entity, output);
//根据组织机构的路径获取 //根据组织机构的路径获取
SysOrganizationViewMapper organizationViewMapper = context.getBean(SysOrganizationViewMapper.class); SysOrganizationViewMapper organizationViewMapper = context.getBean(SysOrganizationViewMapper.class);
SysOrganizationView organizationView = new SysOrganizationView(); SysOrganizationView organizationView = new SysOrganizationView();
organizationView.setId(entity.getOuId()); organizationView.setId(entity.getOuId());
organizationView = organizationViewMapper.selectOrgProvince(organizationView); organizationView = organizationViewMapper.selectOrgProvince(organizationView);
if (null != organizationView) if (Objects.nonNull(organizationView)) {
output.setProvince(organizationView.getProvinceName()); output.setProvince(organizationView.getProvinceName());
}
return XSingleResult.success(output); return XSingleResult.success(output);
} }
...@@ -137,7 +134,7 @@ public class BasePhotovoltaicPlantService extends BaseService { ...@@ -137,7 +134,7 @@ public class BasePhotovoltaicPlantService extends BaseService {
String stationName = input.getStationName(); String stationName = input.getStationName();
String ouId = input.getOuId(); String ouId = input.getOuId();
String excludeIdFlag = input.getExcludeIdFlag(); String excludeIdFlag = input.getExcludeIdFlag();
List<String> allListByOuId = this.getAllListByOuId(context, ouId); List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, ouId);
QueryWrapper<BasePhotovoltaicPlantEnt> queryWrapper = new QueryWrapper<>(); QueryWrapper<BasePhotovoltaicPlantEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda() queryWrapper.lambda()
.notExists("1".equals(excludeIdFlag), "SELECT 1 FROM base_power_line_plant w WHERE w.ou_id = {0} AND base_photovoltaic_plant.id = w.plant_id AND w.is_deleted = 1", input.getOuId()) .notExists("1".equals(excludeIdFlag), "SELECT 1 FROM base_power_line_plant w WHERE w.ou_id = {0} AND base_photovoltaic_plant.id = w.plant_id AND w.is_deleted = 1", input.getOuId())
...@@ -206,4 +203,16 @@ public class BasePhotovoltaicPlantService extends BaseService { ...@@ -206,4 +203,16 @@ public class BasePhotovoltaicPlantService extends BaseService {
); );
return count > 0; return count > 0;
} }
/**
* 通过电站ID获取电站信息
*
* @param plantId 电站id
* @param mapper 映射器
* @return {@link BasePowerLineEnt}
*/
private BasePhotovoltaicPlantEnt selectOneByPlantId(String plantId, BasePhotovoltaicPlantMapper mapper) {
return mapper.selectOne(new LambdaQueryWrapper<BasePhotovoltaicPlantEnt>()
.eq(BaseModel::getId, plantId));
}
} }
...@@ -8,12 +8,17 @@ import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInpu ...@@ -8,12 +8,17 @@ import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInpu
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput; import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput; import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput; 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.DynamicQueryBasePowerLinePlantOutput;
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.BasePowerLineEnt;
import pps.core.base.entity.BasePowerLinePlantEnt;
import pps.core.base.entity.BasePowerLineWellheadView; import pps.core.base.entity.BasePowerLineWellheadView;
import pps.core.base.mapper.BasePowerLineMapper; import pps.core.base.mapper.BasePowerLineMapper;
import pps.core.base.mapper.BasePowerLinePlantMapper;
import pps.core.base.mapper.BasePowerLineWellheadViewMapper; import pps.core.base.mapper.BasePowerLineWellheadViewMapper;
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;
import xstartup.base.XContext; import xstartup.base.XContext;
...@@ -22,6 +27,7 @@ import xstartup.data.XListResult; ...@@ -22,6 +27,7 @@ import xstartup.data.XListResult;
import xstartup.data.XSingleResult; import xstartup.data.XSingleResult;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
...@@ -34,7 +40,7 @@ import java.util.List; ...@@ -34,7 +40,7 @@ import java.util.List;
public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService { public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService {
/** /**
* 输电线路配置模块--通过ID查询线路基本信息 * 输电线路配置Cloud模块--通过ID查询线路基本信息
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
...@@ -51,7 +57,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -51,7 +57,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
} }
/** /**
* 输电线路配置模块--条件查询线路基本信息列表 * 输电线路配置Cloud模块--条件查询线路基本信息列表
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
...@@ -85,7 +91,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -85,7 +91,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
} }
/** /**
* 输电线路配置模块--条件查询线路关联井口信息 * 输电线路配置Cloud模块--条件查询线路关联井口信息
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
...@@ -108,4 +114,34 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -108,4 +114,34 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
} }
return XListResult.success(outputs); return XListResult.success(outputs);
} }
/**
* 输电线路配置Cloud模块--条件查询线路关联电站信息
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLinePlantOutput}>
*/
@Override
public XListResult<DynamicQueryBasePowerLinePlantOutput> queryPowerLinePlantListByParam(XContext context, DynamicQueryBasePowerLinePlantInput input) {
String plantId = input.getPlantId();
Collection<String> lineIds = input.getLineIds();
BasePowerLinePlantMapper mapper = context.getBean(BasePowerLinePlantMapper.class);
List<BasePowerLinePlantEnt> list = mapper.selectList(
new LambdaQueryWrapper<BasePowerLinePlantEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(StringUtils.isNotBlank(plantId), BasePowerLinePlantEnt::getPlantId, plantId)
.in(CollUtil.isNotEmpty(lineIds), BasePowerLinePlantEnt::getLineId, lineIds)
);
List<DynamicQueryBasePowerLinePlantOutput> outputs;
if (CollUtil.isEmpty(list)) {
outputs = new ArrayList<>(0);
} else {
outputs = XCopyUtils.copyNewList(
list,
DynamicQueryBasePowerLinePlantOutput.class
);
}
return XListResult.success(outputs);
}
} }
\ No newline at end of file
...@@ -3,12 +3,18 @@ package pps.core.base.service; ...@@ -3,12 +3,18 @@ package pps.core.base.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID; 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.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.pagehelper.page.PageMethod; import com.github.pagehelper.page.PageMethod;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import pps.cloud.space.service.ISpaceInstitutionDetailCloudService;
import pps.cloud.system.service.SysOrganizationCloudService;
import pps.cloud.system.service.data.GetOuListByOuIdsInput;
import pps.cloud.system.service.data.GetOuListTreeOutput;
import pps.cloud.system.service.data.GetSysOrganizationViewInput;
import pps.cloud.system.service.data.GetSysOrganizationViewOutput;
import pps.core.base.entity.*; import pps.core.base.entity.*;
import pps.core.base.enums.BusinessError;
import pps.core.base.mapper.*; import pps.core.base.mapper.*;
import pps.core.base.service.data.base_power_line.*; import pps.core.base.service.data.base_power_line.*;
import pps.core.base.service.data.base_power_line_diesel.GetBasePowerLineDieselViewOutput; import pps.core.base.service.data.base_power_line_diesel.GetBasePowerLineDieselViewOutput;
...@@ -36,10 +42,7 @@ import xstartup.feature.api.annotation.XApiGet; ...@@ -36,10 +42,7 @@ import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost; import xstartup.feature.api.annotation.XApiPost;
import xstartup.helper.XTransactionHelper; import xstartup.helper.XTransactionHelper;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -142,8 +145,8 @@ public class BasePowerLineService { ...@@ -142,8 +145,8 @@ public class BasePowerLineService {
@XText("输电线路配置--删除") @XText("输电线路配置--删除")
public XServiceResult deleteBasePowerLine(XContext context, DeleteBasePowerLineInput input) { public XServiceResult deleteBasePowerLine(XContext context, DeleteBasePowerLineInput input) {
String lineId = input.getId(); String lineId = input.getId();
if (ServiceUtil.checkLineIsReference(context, lineId)) { if (this.checkLineIsReference(context, lineId)) {
return XServiceResult.error(992, "当前线路已被引用"); return XServiceResult.error(context, BusinessError.LineReference);
} }
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
BasePowerLineMapper mapper = context.getBean(BasePowerLineMapper.class); BasePowerLineMapper mapper = context.getBean(BasePowerLineMapper.class);
...@@ -252,7 +255,7 @@ public class BasePowerLineService { ...@@ -252,7 +255,7 @@ public class BasePowerLineService {
output.setLineTypeName( output.setLineTypeName(
lineTypeMap.get(output.getLineTypeKey()) lineTypeMap.get(output.getLineTypeKey())
); );
output.setOuName(ServiceUtil.getSysOrgNameById(context, output.getOuId())); output.setOuName(this.getSysOrgNameById(context, output.getOuId()));
return XSingleResult.success(output); return XSingleResult.success(output);
} }
...@@ -275,7 +278,7 @@ public class BasePowerLineService { ...@@ -275,7 +278,7 @@ public class BasePowerLineService {
PageInfo<BasePowerLineView> pageInfo = new PageInfo<>(list); PageInfo<BasePowerLineView> pageInfo = new PageInfo<>(list);
List<QueryBasePowerLineViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QueryBasePowerLineViewOutput.class); List<QueryBasePowerLineViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QueryBasePowerLineViewOutput.class);
if (CollUtil.isNotEmpty(outputs)) { if (CollUtil.isNotEmpty(outputs)) {
Map<String, String> ouMap = ServiceUtil.getOuMapByOuIds( Map<String, String> ouMap = this.getOuMapByOuIds(
context, context,
outputs.stream() outputs.stream()
.map(QueryBasePowerLineViewOutput::getOuId) .map(QueryBasePowerLineViewOutput::getOuId)
...@@ -367,6 +370,57 @@ public class BasePowerLineService { ...@@ -367,6 +370,57 @@ public class BasePowerLineService {
/*-----------------------------------private-----------------------------------*/ /*-----------------------------------private-----------------------------------*/
/**
* 检查线路是否被间开制度引用
*
* @param context 上下文
* @param lineId 线路id
* @return boolean
*/
private boolean checkLineIsReference(XContext context, String lineId) {
ISpaceInstitutionDetailCloudService contextBean = context.getBean(ISpaceInstitutionDetailCloudService.class);
XSingleResult<Long> result = contextBean.getInstitutionLineCountByLineId(context, lineId);
result.throwIfFail();
return result.getResult() > 0;
}
/**
* 通过组织id获取系统组织名称
*
* @param context 上下文
* @param ouId 组织id
* @return {@link String}
*/
private String getSysOrgNameById(XContext context, String ouId) {
SysOrganizationCloudService orgCloudService = context.getBean(SysOrganizationCloudService.class);
GetSysOrganizationViewInput viewInput = new GetSysOrganizationViewInput();
viewInput.setId(ouId);
XSingleResult<GetSysOrganizationViewOutput> organization = orgCloudService.getSysOrganizationById(context, viewInput);
organization.throwIfFail();
return Optional.ofNullable(organization.getResult())
.map(GetSysOrganizationViewOutput::getOuName)
.orElse(null);
}
/**
* 通过组织机构ID集合获取详情列表
*
* @param context 上下文
* @param ouIds ou id
* @return {@link Map}<{@link String}, {@link String}>
*/
private Map<String, String> getOuMapByOuIds(XContext context, List<String> ouIds) {
GetOuListByOuIdsInput input = new GetOuListByOuIdsInput();
input.setOuIdList(ouIds);
SysOrganizationCloudService organizationCloudService = context.getBean(SysOrganizationCloudService.class);
XListResult<GetOuListTreeOutput> ouListByOuIds = organizationCloudService.getOuListByOuIds(context, input);
ouListByOuIds.throwIfFail();
return ouListByOuIds.getResult().stream()
.collect(Collectors.toMap(
GetOuListTreeOutput::getOuId, GetOuListTreeOutput::getOuName
));
}
/** /**
* 通过线路ID获取线路信息 * 通过线路ID获取线路信息
* *
...@@ -375,9 +429,8 @@ public class BasePowerLineService { ...@@ -375,9 +429,8 @@ public class BasePowerLineService {
* @return {@link BasePowerLineEnt} * @return {@link BasePowerLineEnt}
*/ */
private BasePowerLineEnt selectOneByLineId(String lineId, BasePowerLineMapper mapper) { private BasePowerLineEnt selectOneByLineId(String lineId, BasePowerLineMapper mapper) {
return mapper.selectOne(new QueryWrapper<BasePowerLineEnt>() return mapper.selectOne(new LambdaQueryWrapper<BasePowerLineEnt>()
.lambda() .eq(BaseModel::getId, lineId));
.eq(BasePowerLineEnt::getId, lineId));
} }
/** /**
......
...@@ -25,7 +25,7 @@ import java.util.List; ...@@ -25,7 +25,7 @@ import java.util.List;
public class BasePriceStrategyCloudServiceImpl implements IBasePriceStrategyCloudService { public class BasePriceStrategyCloudServiceImpl implements IBasePriceStrategyCloudService {
/** /**
* 市电峰谷策略--策略配置详情列表 * 市电峰谷配置Cloud模块--策略配置详情列表
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
......
...@@ -8,7 +8,11 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; ...@@ -8,7 +8,11 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.pagehelper.page.PageMethod; import com.github.pagehelper.page.PageMethod;
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.*; import pps.core.base.entity.*;
import pps.core.base.enums.BusinessError;
import pps.core.base.mapper.*; import pps.core.base.mapper.*;
import pps.core.base.service.data.base_price_strategy.*; import pps.core.base.service.data.base_price_strategy.*;
import pps.core.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput; import pps.core.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput;
...@@ -140,7 +144,7 @@ public class BasePriceStrategyService { ...@@ -140,7 +144,7 @@ public class BasePriceStrategyService {
public XServiceResult deleteBasePriceStrategy(XContext context, DeleteBasePriceStrategyInput input) { public XServiceResult deleteBasePriceStrategy(XContext context, DeleteBasePriceStrategyInput input) {
String strategyId = input.getId(); String strategyId = input.getId();
if (this.checkStrategyIsReference(context, strategyId)) { if (this.checkStrategyIsReference(context, strategyId)) {
return XServiceResult.error(992, "当前策略已被引用"); return XServiceResult.error(context, BusinessError.StrategyReference);
} }
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
BasePriceStrategyMapper mapper = context.getBean(BasePriceStrategyMapper.class); BasePriceStrategyMapper mapper = context.getBean(BasePriceStrategyMapper.class);
...@@ -202,7 +206,9 @@ public class BasePriceStrategyService { ...@@ -202,7 +206,9 @@ public class BasePriceStrategyService {
List<BasePriceStrategyMonthEnt> monthEntList = monthMapper.selectList(new QueryWrapper<BasePriceStrategyMonthEnt>() List<BasePriceStrategyMonthEnt> monthEntList = monthMapper.selectList(new QueryWrapper<BasePriceStrategyMonthEnt>()
.lambda() .lambda()
.select(BasePriceStrategyMonthEnt::getId, BasePriceStrategyMonthEnt::getStrategyMonth) .select(BasePriceStrategyMonthEnt::getId, BasePriceStrategyMonthEnt::getStrategyMonth)
.eq(BasePriceStrategyMonthEnt::getStrategyId, strategyId)); .eq(BasePriceStrategyMonthEnt::getStrategyId, strategyId)
.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);
//查明细 //查明细
...@@ -257,7 +263,7 @@ public class BasePriceStrategyService { ...@@ -257,7 +263,7 @@ public class BasePriceStrategyService {
PageInfo<BasePriceStrategyView> pageInfo = new PageInfo<>(list); PageInfo<BasePriceStrategyView> pageInfo = new PageInfo<>(list);
List<QueryBasePriceStrategyViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QueryBasePriceStrategyViewOutput.class); List<QueryBasePriceStrategyViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QueryBasePriceStrategyViewOutput.class);
if (CollUtil.isNotEmpty(outputs)) { if (CollUtil.isNotEmpty(outputs)) {
Map<Integer, String> areaMap = ServiceUtil.getSysAreaMap(context); Map<Integer, String> areaMap = this.getSysAreaMap(context);
for (QueryBasePriceStrategyViewOutput output : outputs) { for (QueryBasePriceStrategyViewOutput output : outputs) {
output.setAreaName( output.setAreaName(
areaMap.get(output.getAreaCode()) areaMap.get(output.getAreaCode())
...@@ -315,6 +321,20 @@ public class BasePriceStrategyService { ...@@ -315,6 +321,20 @@ public class BasePriceStrategyService {
return count > 0; return count > 0;
} }
/**
* 获取区域Map
*
* @param context 上下文
* @return {@link Map}<{@link Integer}, {@link String}>
*/
private Map<Integer, String> getSysAreaMap(XContext context) {
SystemAreaService systemAreaService = context.getBean(SystemAreaService.class);
XListResult<GetSysAreaOutput> sysAreaList = systemAreaService.getSysAreaList(context, new GetSysAreaInput());
sysAreaList.throwIfFail();
return sysAreaList.getResult().stream()
.collect(Collectors.toMap(GetSysAreaOutput::getId, GetSysAreaOutput::getName));
}
/** /**
* 保存策略明细 * 保存策略明细
* *
......
package pps.core.base.service;
import pps.cloud.system.service.SysOrganizationCloudService;
import pps.cloud.system.service.data.GetAllOuListByOuIdInput;
import pps.cloud.system.service.data.GetSysOrganizationViewOutput;
import xstartup.base.XContext;
import xstartup.data.XListResult;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description
* @Author luoxiangyang
* @Date 2023/8/31 14:13
**/
public class BaseService {
/**
* 根据ouid获取所有子集的ouid
* @param context
* @param ouId
* @return
*/
public List<String> getAllListByOuId(XContext context,String ouId){
SysOrganizationCloudService organizationCloudService = context.getBean(SysOrganizationCloudService.class);
GetAllOuListByOuIdInput ouIdInput=new GetAllOuListByOuIdInput();
ouIdInput.setOuId(ouId);
XListResult<GetSysOrganizationViewOutput> allListByOuId = organizationCloudService.getAllListByOuId(context, ouIdInput);
allListByOuId.throwIfFail();
List<GetSysOrganizationViewOutput> listByOuIdResult = allListByOuId.getResult();
return listByOuIdResult.stream().map(GetSysOrganizationViewOutput::getId).collect(Collectors.toList());
}
}
package pps.core.base.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
import pps.core.base.entity.BaseWellheadEnt;
import pps.core.base.mapper.BaseWellheadMapper;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import java.util.ArrayList;
import java.util.List;
/**
* 井口配置Cloud模块
*
* @author ZWT
* @date 2023/09/13 17:34
*/
@XService
public class BaseWellheadCloudServiceImpl implements IBaseWellheadCloudService {
/**
* 井口配置Cloud模块--条件查询井口基本信息列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBaseWellheadOutput}>
*/
@Override
public XListResult<DynamicQueryBaseWellheadOutput> queryBaseWellheadListByParam(XContext context, DynamicQueryBaseWellheadInput input) {
String wellheadId = input.getWellheadId();
List<String> wellheadIds = input.getWellheadIds();
BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class);
List<BaseWellheadEnt> list = mapper.selectList(
new LambdaQueryWrapper<BaseWellheadEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(StringUtils.isNotBlank(wellheadId), BaseModel::getId, wellheadId)
.in(CollUtil.isNotEmpty(wellheadIds), BaseModel::getId, wellheadIds)
);
List<DynamicQueryBaseWellheadOutput> outputs;
if (CollUtil.isEmpty(list)) {
outputs = new ArrayList<>(0);
} else {
outputs = XCopyUtils.copyNewList(
list,
DynamicQueryBaseWellheadOutput.class
);
}
return XListResult.success(outputs);
}
}
...@@ -3,13 +3,16 @@ package pps.core.base.service; ...@@ -3,13 +3,16 @@ package pps.core.base.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
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 org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import pps.cloud.space.service.ISpaceInstitutionDetailCloudService;
import pps.core.base.entity.BaseDieselGeneratorEnt;
import pps.core.base.entity.BasePowerLineWellheadEnt; import pps.core.base.entity.BasePowerLineWellheadEnt;
import pps.core.base.entity.BaseWellheadEnt; import pps.core.base.entity.BaseWellheadEnt;
import pps.core.base.enums.BusinessError;
import pps.core.base.mapper.BasePowerLineWellheadMapper; import pps.core.base.mapper.BasePowerLineWellheadMapper;
import pps.core.base.mapper.BaseWellheadMapper; import pps.core.base.mapper.BaseWellheadMapper;
import pps.core.base.service.data.base_wellhead.*; import pps.core.base.service.data.base_wellhead.*;
import pps.core.base.utils.ServiceUtil;
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 pps.core.common.session.PpsUserSession; import pps.core.common.session.PpsUserSession;
...@@ -39,7 +42,7 @@ import java.util.Objects; ...@@ -39,7 +42,7 @@ import java.util.Objects;
* @date 2023/09/08 * @date 2023/09/08
*/ */
@XService @XService
public class BaseWellheadService extends BaseService { public class BaseWellheadService {
@XText("新增") @XText("新增")
@XApiAnonymous @XApiAnonymous
...@@ -61,9 +64,7 @@ public class BaseWellheadService extends BaseService { ...@@ -61,9 +64,7 @@ public class BaseWellheadService extends BaseService {
public XServiceResult updateBaseWellhead(XContext context, UpdateBaseWellheadInput input) { public XServiceResult updateBaseWellhead(XContext context, UpdateBaseWellheadInput input) {
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class); BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class);
BaseWellheadEnt entity = mapper.selectOne(new LambdaUpdateWrapper<BaseWellheadEnt>() BaseWellheadEnt entity = this.selectOneByWellheadId(input.getId(), mapper);
.eq(BaseModel::getId, input.getId())
);
if (Objects.isNull(entity)) { if (Objects.isNull(entity)) {
return XServiceResult.error(context, XError.NotFound); return XServiceResult.error(context, XError.NotFound);
} }
...@@ -80,19 +81,20 @@ public class BaseWellheadService extends BaseService { ...@@ -80,19 +81,20 @@ public class BaseWellheadService extends BaseService {
@XApiPost @XApiPost
public XServiceResult deleteBaseWellhead(XContext context, DeleteBaseWellheadInput input) { public XServiceResult deleteBaseWellhead(XContext context, DeleteBaseWellheadInput input) {
String wellheadId = input.getId(); String wellheadId = input.getId();
if (this.checkWellheadIsReference(context, wellheadId)) { if (this.checkWellheadIsLineReference(context, wellheadId)) {
return XServiceResult.error(992, "当前井口已被引用"); return XServiceResult.error(context, BusinessError.WellheadReferenceLine);
}
if (this.checkWellheadIsSpaceReference(context, wellheadId)) {
return XServiceResult.error(context, BusinessError.WellheadReferenceSpace);
} }
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class); BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class);
BaseWellheadEnt entity = mapper.selectOne(new LambdaUpdateWrapper<BaseWellheadEnt>() BaseWellheadEnt entity = this.selectOneByWellheadId(wellheadId, mapper);
.eq(BaseModel::getId, wellheadId)
);
if (Objects.isNull(entity)) { if (Objects.isNull(entity)) {
return XServiceResult.error(context, XError.NotFound); return XServiceResult.error(context, XError.NotFound);
} }
entity = new BaseWellheadEnt(); entity = new BaseWellheadEnt();
entity.setId(input.getId()); entity.setId(wellheadId);
entity.setIsDeleted(BusinessConstant.ZERO); entity.setIsDeleted(BusinessConstant.ZERO);
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
...@@ -106,16 +108,11 @@ public class BaseWellheadService extends BaseService { ...@@ -106,16 +108,11 @@ public class BaseWellheadService extends BaseService {
@XApiGet @XApiGet
public XSingleResult<GetBaseWellheadOutput> getBaseWellhead(XContext context, GetBaseWellheadInput input) { public XSingleResult<GetBaseWellheadOutput> getBaseWellhead(XContext context, GetBaseWellheadInput input) {
BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class); BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class);
QueryWrapper<BaseWellheadEnt> queryWrapper = new QueryWrapper<>(); BaseWellheadEnt entity = this.selectOneByWellheadId(input.getId(), mapper);
queryWrapper.lambda() if (Objects.isNull(entity)) {
.eq(BaseWellheadEnt::getId, input.getId())
.eq(BaseWellheadEnt::getIsDeleted, BusinessConstant.ONE);
BaseWellheadEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XSingleResult.error(context, XError.NotFound); return XSingleResult.error(context, XError.NotFound);
} }
GetBaseWellheadOutput output = new GetBaseWellheadOutput(); GetBaseWellheadOutput output = XCopyUtils.copyNewObject(entity, GetBaseWellheadOutput.class);
XCopyUtils.copyObject(entity, output);
return XSingleResult.success(output); return XSingleResult.success(output);
} }
...@@ -126,7 +123,7 @@ public class BaseWellheadService extends BaseService { ...@@ -126,7 +123,7 @@ public class BaseWellheadService extends BaseService {
String excludeIdFlag = input.getExcludeIdFlag(); String excludeIdFlag = input.getExcludeIdFlag();
BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class); BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class);
QueryWrapper<BaseWellheadEnt> queryWrapper = new QueryWrapper<>(); QueryWrapper<BaseWellheadEnt> queryWrapper = new QueryWrapper<>();
List<String> allListByOuId = this.getAllListByOuId(context, input.getOuId()); List<String> allListByOuId = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
queryWrapper.lambda() queryWrapper.lambda()
.notExists(StringUtils.equals("1", excludeIdFlag), "SELECT 1 FROM base_power_line_wellhead w WHERE w.ou_id = {0} AND base_wellhead.id = w.wellhead_id AND w.is_deleted = 1", input.getOuId()) .notExists(StringUtils.equals("1", excludeIdFlag), "SELECT 1 FROM base_power_line_wellhead w WHERE w.ou_id = {0} AND base_wellhead.id = w.wellhead_id AND w.is_deleted = 1", input.getOuId())
.eq(BaseWellheadEnt::getIsDeleted, BusinessConstant.ONE) .eq(BaseWellheadEnt::getIsDeleted, BusinessConstant.ONE)
...@@ -138,13 +135,13 @@ public class BaseWellheadService extends BaseService { ...@@ -138,13 +135,13 @@ public class BaseWellheadService extends BaseService {
/*-----------------------------------private-----------------------------------*/ /*-----------------------------------private-----------------------------------*/
/** /**
* 检查井口是否被引用 * 检查井口是否被线路引用
* *
* @param context 上下文 * @param context 上下文
* @param wellheadId 井口ID * @param wellheadId 井口ID
* @return boolean * @return boolean
*/ */
private boolean checkWellheadIsReference(XContext context, String wellheadId) { private boolean checkWellheadIsLineReference(XContext context, String wellheadId) {
BasePowerLineWellheadMapper mapper = context.getBean(BasePowerLineWellheadMapper.class); BasePowerLineWellheadMapper mapper = context.getBean(BasePowerLineWellheadMapper.class);
Long count = mapper.selectCount(new LambdaQueryWrapper<BasePowerLineWellheadEnt>() Long count = mapper.selectCount(new LambdaQueryWrapper<BasePowerLineWellheadEnt>()
.eq(BasePowerLineWellheadEnt::getWellheadId, wellheadId) .eq(BasePowerLineWellheadEnt::getWellheadId, wellheadId)
...@@ -152,4 +149,31 @@ public class BaseWellheadService extends BaseService { ...@@ -152,4 +149,31 @@ public class BaseWellheadService extends BaseService {
); );
return count > 0; return count > 0;
} }
/**
* 检查井口是否被间开引用
*
* @param context 上下文
* @param wellheadId 井口id
* @return boolean
*/
private boolean checkWellheadIsSpaceReference(XContext context, String wellheadId) {
ISpaceInstitutionDetailCloudService contextBean = context.getBean(ISpaceInstitutionDetailCloudService.class);
XSingleResult<Long> result = contextBean.getInstitutionWellheadCountByWellheadId(context, wellheadId);
result.throwIfFail();
return result.getResult() > 0;
}
/**
* 通过井口ID查询井口信息
*
* @param wellheadId 井口id
* @param mapper 映射器
* @return {@link BaseDieselGeneratorEnt}
*/
private BaseWellheadEnt selectOneByWellheadId(String wellheadId, BaseWellheadMapper mapper) {
return mapper.selectOne(new LambdaQueryWrapper<BaseWellheadEnt>()
.eq(BaseModel::getId, wellheadId)
);
}
} }
package pps.core.base.utils; package pps.core.base.utils;
import com.baomidou.mybatisplus.core.enums.SqlMethod;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import pps.cloud.space.service.ISpaceInstitutionDetailCloudService;
import pps.cloud.system.service.SysOrganizationCloudService; import pps.cloud.system.service.SysOrganizationCloudService;
import pps.cloud.system.service.SystemAreaService;
import pps.cloud.system.service.SystemDictionaryService; import pps.cloud.system.service.SystemDictionaryService;
import pps.cloud.system.service.data.*; import pps.cloud.system.service.data.GetAllOuListByOuIdInput;
import pps.cloud.system.service.data.GetSysOrganizationViewOutput;
import pps.cloud.system.service.data.QuerySysDictionaryViewInput;
import pps.cloud.system.service.data.QuerySysDictionaryViewOutput;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.data.XListResult; import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -46,38 +42,6 @@ public class ServiceUtil { ...@@ -46,38 +42,6 @@ public class ServiceUtil {
.collect(Collectors.toMap(QuerySysDictionaryViewOutput::getDicKey, QuerySysDictionaryViewOutput::getDicName)); .collect(Collectors.toMap(QuerySysDictionaryViewOutput::getDicKey, QuerySysDictionaryViewOutput::getDicName));
} }
/**
* 通过组织id获取系统组织名称
*
* @param context 上下文
* @param ouId 组织id
* @return {@link String}
*/
public static String getSysOrgNameById(XContext context, String ouId) {
SysOrganizationCloudService orgCloudService = context.getBean(SysOrganizationCloudService.class);
GetSysOrganizationViewInput viewInput = new GetSysOrganizationViewInput();
viewInput.setId(ouId);
XSingleResult<GetSysOrganizationViewOutput> organization = orgCloudService.getSysOrganizationById(context, viewInput);
organization.throwIfFail();
return Optional.ofNullable(organization.getResult())
.map(GetSysOrganizationViewOutput::getOuName)
.orElse(null);
}
/**
* 获取区域Map
*
* @param context 上下文
* @return {@link Map}<{@link Integer}, {@link String}>
*/
public static Map<Integer, String> getSysAreaMap(XContext context) {
SystemAreaService systemAreaService = context.getBean(SystemAreaService.class);
XListResult<GetSysAreaOutput> sysAreaList = systemAreaService.getSysAreaList(context, new GetSysAreaInput());
sysAreaList.throwIfFail();
return sysAreaList.getResult().stream()
.collect(Collectors.toMap(GetSysAreaOutput::getId, GetSysAreaOutput::getName));
}
/** /**
* 获取所有path包含组织ID的组织 * 获取所有path包含组织ID的组织
* *
...@@ -95,51 +59,4 @@ public class ServiceUtil { ...@@ -95,51 +59,4 @@ public class ServiceUtil {
.map(GetSysOrganizationViewOutput::getId) .map(GetSysOrganizationViewOutput::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
/**
* 通过组织机构ID集合获取详情列表
*
* @param context 上下文
* @param ouIds ou id
* @return {@link Map}<{@link String}, {@link String}>
*/
public static Map<String, String> getOuMapByOuIds(XContext context, List<String> ouIds) {
GetOuListByOuIdsInput input = new GetOuListByOuIdsInput();
input.setOuIdList(ouIds);
SysOrganizationCloudService organizationCloudService = context.getBean(SysOrganizationCloudService.class);
XListResult<GetOuListTreeOutput> ouListByOuIds = organizationCloudService.getOuListByOuIds(context, input);
ouListByOuIds.throwIfFail();
return ouListByOuIds.getResult().stream()
.collect(Collectors.toMap(
GetOuListTreeOutput::getOuId, GetOuListTreeOutput::getOuName
));
}
/**
* 检查线路是否被间开制度引用
*
* @param context 上下文
* @param lineId 线路id
* @return boolean
*/
public static boolean checkLineIsReference(XContext context, String lineId) {
ISpaceInstitutionDetailCloudService contextBean = context.getBean(ISpaceInstitutionDetailCloudService.class);
XSingleResult<Long> result = contextBean.getInstitutionLineCountByLineId(context, lineId);
result.throwIfFail();
return result.getResult() > 0;
}
/**
* 批量插入
*
* @param mapper 映射器
* @param entityClass 实体类
* @param list 列表
*/
public static <E> void batchInsert(Class<?> mapper, Class<?> entityClass, Collection<E> list) {
String sqlStatement = SqlHelper.getSqlStatement(mapper, SqlMethod.INSERT_ONE);
SqlHelper.executeBatch(entityClass, null, list, 1000, (sqlSession, ent) -> {
sqlSession.insert(sqlStatement, ent);
});
}
} }
\ No newline at end of file
package pps.core.task.constant;
/**
* cron配置
*
* @author ZWT
* @date 2023/09/13 14:29
*/
public class CronConstant {
/**
* 每月第一天 0点
*/
public static final String FIRST_DAY_OF_THE_MONTH = "0 0 0 1 * ?";
/**
* 每周一 0点
*/
public static final String EVERY_MONDAY = "0 0 0 ? * 2";
}
package pps.core.task.job;
import pps.cloud.space.service.ISpaceOptimizeLongCloudService;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
/**
* 长期间开优化定时任务
*
* @author ZWT
* @date 2023/09/13 13:59
*/
@XText("长期间开优化定时任务")
@XService
public class SpaceOptimizeLongJob implements XJob {
/**
* 每月一日执行
*
* @param xContext x上下文
* @return {@link XServiceResult}
*/
// @XCronTrigger(value = XCronTrigger.PRE_10S)
// @XCronTrigger(value = CronConstant.FIRST_DAY_OF_THE_MONTH)
@Override
public XServiceResult execute(XContext xContext) {
ISpaceOptimizeLongCloudService service = xContext.getBean(ISpaceOptimizeLongCloudService.class);
XServiceResult result = service.optimizeLongJob(xContext);
result.throwIfFail();
return XServiceResult.OK;
}
}
\ No newline at end of file
...@@ -7,23 +7,34 @@ import xstartup.data.XSingleResult; ...@@ -7,23 +7,34 @@ import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiGet; import xstartup.feature.api.annotation.XApiGet;
/** /**
* 基础间开配置模块 * 基础间开配置Cloud模块
* *
* @author ZWT * @author ZWT
* @date 2023/09/06 17:07 * @date 2023/09/06 17:07
*/ */
@XService @XService
@XText("基础间开配置模块") @XText("基础间开配置Cloud模块")
public interface ISpaceInstitutionDetailCloudService { public interface ISpaceInstitutionDetailCloudService {
/** /**
* 基础间开配置模块--获取线路配置制度数量 * 基础间开配置Cloud模块--检查线路是否被引用
* *
* @param context 上下文 * @param context 上下文
* @param lineId 线路id * @param lineId 线路id
* @return {@link XSingleResult}<{@link Long}> * @return {@link XSingleResult}<{@link Long}>
*/ */
@XText("基础间开配置模块--获取线路配置制度数量") @XText("基础间开配置Cloud模块--检查线路是否被引用")
@XApiGet @XApiGet
XSingleResult<Long> getInstitutionLineCountByLineId(XContext context, String lineId); XSingleResult<Long> getInstitutionLineCountByLineId(XContext context, String lineId);
/**
* 基础间开配置Cloud模块--检查井口是否被引用
*
* @param context 上下文
* @param wellheadId 井口id
* @return {@link XSingleResult}<{@link Long}>
*/
@XText("基础间开配置Cloud模块--检查井口是否被引用")
@XApiGet
XSingleResult<Long> getInstitutionWellheadCountByWellheadId(XContext context, String wellheadId);
} }
package pps.cloud.space.service;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
/**
* 长期间开优化Cloud模块
*
* @author ZWT
* @date 2023/09/13 14:03
*/
@XService
@XText("长期间开优化Cloud模块")
public interface ISpaceOptimizeLongCloudService {
/**
* 长期间开优化Cloud模块--定时任务
*
* @param context 上下文
* @return {@link XServiceResult}
*/
@XText("长期间开优化Cloud模块--定时任务")
XServiceResult optimizeLongJob(XContext context);
}
\ No newline at end of file
...@@ -37,7 +37,11 @@ ...@@ -37,7 +37,11 @@
<artifactId>pps-cloud-base</artifactId> <artifactId>pps-cloud-base</artifactId>
<version>1.0.0-pps</version> <version>1.0.0-pps</version>
</dependency> </dependency>
<dependency>
<groupId>gf</groupId>
<artifactId>pps-cloud-prediction</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency> <dependency>
<groupId>org.jsoup</groupId> <groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId> <artifactId>jsoup</artifactId>
......
...@@ -58,6 +58,13 @@ public class SpaceInstitutionWellheadView extends BaseModel implements Serializa ...@@ -58,6 +58,13 @@ public class SpaceInstitutionWellheadView extends BaseModel implements Serializa
@TableField @TableField
private BigDecimal runDuration; private BigDecimal runDuration;
/**
* 运行功率
*/
@XText("运行功率(KW)")
@TableField(exist = false)
private BigDecimal serviceRating;
/** /**
* 间开制度小间开时段配置 * 间开制度小间开时段配置
*/ */
......
package pps.core.space.enums;
import xstartup.error.XError;
/**
* 业务错误
*
* @author ZWT
* @date 2023/09/12
*/
public enum BusinessError implements XError {
LineExists(2100, "当前线路已设定周期"),
RepeatSetting(2101, "请勿重复设定"),
DidNotFindSpace(2102, "未发现可优化基础间开制度"),
DidNotFindWellhead(2103, "未发现可优化井口"),
DidNotFindPlant(2104, "未发现可用光伏电站"),
;
private int code;
private String text;
BusinessError(int code, String text) {
this.code = code;
this.text = text;
}
@Override
public int getCode() {
return 0;
}
@Override
public String getText() {
return null;
}
}
...@@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Param; ...@@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import pps.core.space.entity.SpaceInstitutionWellheadView; import pps.core.space.entity.SpaceInstitutionWellheadView;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
...@@ -25,4 +26,12 @@ public interface SpaceInstitutionWellheadViewMapper { ...@@ -25,4 +26,12 @@ public interface SpaceInstitutionWellheadViewMapper {
* @return int * @return int
*/ */
int batchInsertList(@Param(value = "list") List<SpaceInstitutionWellheadView> list); int batchInsertList(@Param(value = "list") List<SpaceInstitutionWellheadView> list);
/**
* 通过制度ID集合获取所有间开井口
*
* @param institutionIds 机构ID
* @return {@link List}<{@link SpaceInstitutionWellheadView}>
*/
List<SpaceInstitutionWellheadView> selectListByInstitutionIds(@Param(value = "list") Collection institutionIds);
} }
...@@ -11,6 +11,7 @@ import pps.core.common.utils.BaseUtils; ...@@ -11,6 +11,7 @@ import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.SpaceCalibrationHistoryView; import pps.core.space.entity.SpaceCalibrationHistoryView;
import pps.core.space.entity.SpaceCalibrationPeriodEnt; import pps.core.space.entity.SpaceCalibrationPeriodEnt;
import pps.core.space.entity.SpaceInstitutionWellheadEnt; import pps.core.space.entity.SpaceInstitutionWellheadEnt;
import pps.core.space.enums.BusinessError;
import pps.core.space.mapper.SpaceCalibrationHistoryViewMapper; import pps.core.space.mapper.SpaceCalibrationHistoryViewMapper;
import pps.core.space.mapper.SpaceCalibrationPeriodMapper; import pps.core.space.mapper.SpaceCalibrationPeriodMapper;
import pps.core.space.mapper.SpaceInstitutionWellheadMapper; import pps.core.space.mapper.SpaceInstitutionWellheadMapper;
...@@ -69,7 +70,7 @@ public class SpaceCalibrationService { ...@@ -69,7 +70,7 @@ public class SpaceCalibrationService {
SpaceCalibrationPeriodMapper mapper = context.getBean(SpaceCalibrationPeriodMapper.class); SpaceCalibrationPeriodMapper mapper = context.getBean(SpaceCalibrationPeriodMapper.class);
SpaceCalibrationPeriodEnt periodEnt = this.getPeriodEntByParam(mapper, input.getLineId(), input.getOuId()); SpaceCalibrationPeriodEnt periodEnt = this.getPeriodEntByParam(mapper, input.getLineId(), input.getOuId());
if (Objects.nonNull(periodEnt)) { if (Objects.nonNull(periodEnt)) {
return XServiceResult.error(992, "当前线路已设定周期"); return XServiceResult.error(context, BusinessError.LineExists);
} }
SpaceCalibrationPeriodEnt entity = XCopyUtils.copyNewObject(input, SpaceCalibrationPeriodEnt.class); SpaceCalibrationPeriodEnt entity = XCopyUtils.copyNewObject(input, SpaceCalibrationPeriodEnt.class);
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
......
...@@ -5,13 +5,15 @@ import pps.cloud.space.service.ISpaceInstitutionDetailCloudService; ...@@ -5,13 +5,15 @@ import pps.cloud.space.service.ISpaceInstitutionDetailCloudService;
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 pps.core.space.entity.SpaceInstitutionDetailEnt; import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceInstitutionWellheadEnt;
import pps.core.space.mapper.SpaceInstitutionDetailMapper; import pps.core.space.mapper.SpaceInstitutionDetailMapper;
import pps.core.space.mapper.SpaceInstitutionWellheadMapper;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.data.XSingleResult; import xstartup.data.XSingleResult;
/** /**
* 基础间开配置模块 * 基础间开配置Cloud模块
* *
* @author ZWT * @author ZWT
* @date 2023/09/06 17:09 * @date 2023/09/06 17:09
...@@ -20,7 +22,7 @@ import xstartup.data.XSingleResult; ...@@ -20,7 +22,7 @@ import xstartup.data.XSingleResult;
public class SpaceInstitutionDetailCloudServiceImpl implements ISpaceInstitutionDetailCloudService { public class SpaceInstitutionDetailCloudServiceImpl implements ISpaceInstitutionDetailCloudService {
/** /**
* 基础间开配置模块--获取线路配置制度数量 * 基础间开配置Cloud模块--获取线路配置制度数量
* *
* @param context 上下文 * @param context 上下文
* @param lineId 线路id * @param lineId 线路id
...@@ -35,4 +37,21 @@ public class SpaceInstitutionDetailCloudServiceImpl implements ISpaceInstitution ...@@ -35,4 +37,21 @@ public class SpaceInstitutionDetailCloudServiceImpl implements ISpaceInstitution
.eq(SpaceInstitutionDetailEnt::getLineId, lineId) .eq(SpaceInstitutionDetailEnt::getLineId, lineId)
)); ));
} }
/**
* 基础间开配置Cloud模块--检查井口是否被引用
*
* @param context 上下文
* @param wellheadId 井口id
* @return {@link XSingleResult}<{@link Long}>
*/
@Override
public XSingleResult<Long> getInstitutionWellheadCountByWellheadId(XContext context, String wellheadId) {
SpaceInstitutionWellheadMapper mapper = context.getBean(SpaceInstitutionWellheadMapper.class);
return XSingleResult.success(mapper.selectCount(
new LambdaQueryWrapper<SpaceInstitutionWellheadEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceInstitutionWellheadEnt::getWellheadId, wellheadId)
));
}
} }
...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; ...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.IBasePowerLineCloudService;
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.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
...@@ -14,6 +15,7 @@ import pps.core.common.entity.BaseModel; ...@@ -14,6 +15,7 @@ import pps.core.common.entity.BaseModel;
import pps.core.common.session.PpsUserSession; import pps.core.common.session.PpsUserSession;
import pps.core.common.utils.BaseUtils; import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.*; import pps.core.space.entity.*;
import pps.core.space.enums.BusinessError;
import pps.core.space.mapper.*; import pps.core.space.mapper.*;
import pps.core.space.service.data.space_institution_detail.*; import pps.core.space.service.data.space_institution_detail.*;
import pps.core.space.service.data.space_institution_duration.GetSpaceInstitutionDurationViewOutput; import pps.core.space.service.data.space_institution_duration.GetSpaceInstitutionDurationViewOutput;
...@@ -25,6 +27,7 @@ import xstartup.annotation.XService; ...@@ -25,6 +27,7 @@ import xstartup.annotation.XService;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils; import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XPageResult; import xstartup.data.XPageResult;
import xstartup.data.XServiceResult; import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult; import xstartup.data.XSingleResult;
...@@ -183,7 +186,7 @@ public class SpaceInstitutionDetailService { ...@@ -183,7 +186,7 @@ public class SpaceInstitutionDetailService {
.map(SpaceInstitutionWellheadEnt::getWellheadId) .map(SpaceInstitutionWellheadEnt::getWellheadId)
.collect(Collectors.toList())); .collect(Collectors.toList()));
} }
List<DynamicQueryBasePowerLineWellheadViewOutput> powerLineWellheadList = ServiceUtil.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();
...@@ -284,9 +287,6 @@ public class SpaceInstitutionDetailService { ...@@ -284,9 +287,6 @@ public class SpaceInstitutionDetailService {
public XServiceResult updateBasicInstitution(XContext context, UpdateSpaceInstitutionDetailInput input) { public XServiceResult updateBasicInstitution(XContext context, UpdateSpaceInstitutionDetailInput input) {
String ouId = input.getOuId(); String ouId = input.getOuId();
String lineId = input.getLineId(); String lineId = input.getLineId();
if (StringUtils.isAnyBlank(ouId, lineId)) {
return XServiceResult.error(992, "缺少必填项");
}
String institutionId = input.getId(); String institutionId = input.getId();
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
SpaceInstitutionDetailMapper mapper = context.getBean(SpaceInstitutionDetailMapper.class); SpaceInstitutionDetailMapper mapper = context.getBean(SpaceInstitutionDetailMapper.class);
...@@ -296,7 +296,7 @@ public class SpaceInstitutionDetailService { ...@@ -296,7 +296,7 @@ public class SpaceInstitutionDetailService {
} }
Integer isCurrentBasic = entity.getIsCurrentBasic(); Integer isCurrentBasic = entity.getIsCurrentBasic();
if (isCurrentBasic.equals(BusinessConstant.ZERO)) { if (isCurrentBasic.equals(BusinessConstant.ZERO)) {
return XServiceResult.error(992, "请勿重复设定"); return XServiceResult.error(context, BusinessError.RepeatSetting);
} }
//关闭当前基础制度 //关闭当前基础制度
mapper.update(null, new LambdaUpdateWrapper<SpaceInstitutionDetailEnt>() mapper.update(null, new LambdaUpdateWrapper<SpaceInstitutionDetailEnt>()
...@@ -372,6 +372,20 @@ public class SpaceInstitutionDetailService { ...@@ -372,6 +372,20 @@ public class SpaceInstitutionDetailService {
/*-----------------------------------private-----------------------------------*/ /*-----------------------------------private-----------------------------------*/
/**
* 条件查询输电线路井口列表
*
* @param context 上下文
* @param input 输入
* @return {@link List}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/
private List<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input) {
IBasePowerLineCloudService lineService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> result = lineService.getPowerLineWellheadList(context, input);
result.throwIfFail();
return result.getResult();
}
/** /**
* 保存策略关联信息 * 保存策略关联信息
* *
......
...@@ -10,7 +10,7 @@ import pps.core.common.constant.BusinessConstant; ...@@ -10,7 +10,7 @@ import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import pps.core.space.entity.*; import pps.core.space.entity.*;
import pps.core.space.mapper.*; import pps.core.space.mapper.*;
import pps.core.space.service.data.space_optimize_long_duration.GetSpaceOptimizeLongDurationOutput; import pps.core.space.service.data.SpaceOptimizeDateDuration;
import pps.core.space.service.data.space_optimize_long_period.GetSpaceOptimizeLongPeriodViewInput; import pps.core.space.service.data.space_optimize_long_period.GetSpaceOptimizeLongPeriodViewInput;
import pps.core.space.service.data.space_optimize_long_period.GetSpaceOptimizeLongPeriodViewOutput; import pps.core.space.service.data.space_optimize_long_period.GetSpaceOptimizeLongPeriodViewOutput;
import pps.core.space.service.data.space_optimize_long_period.QuerySpaceOptimizeLongPeriodViewInput; import pps.core.space.service.data.space_optimize_long_period.QuerySpaceOptimizeLongPeriodViewInput;
...@@ -93,6 +93,7 @@ public class SpaceOptimizeLongPeriodService { ...@@ -93,6 +93,7 @@ public class SpaceOptimizeLongPeriodService {
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());
...@@ -106,6 +107,7 @@ public class SpaceOptimizeLongPeriodService { ...@@ -106,6 +107,7 @@ public class SpaceOptimizeLongPeriodService {
.strategyMonth(String.valueOf(calendar.get(Calendar.MONTH) + 1)) .strategyMonth(String.valueOf(calendar.get(Calendar.MONTH) + 1))
.build())); .build()));
} }
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>()
...@@ -122,16 +124,20 @@ public class SpaceOptimizeLongPeriodService { ...@@ -122,16 +124,20 @@ public class SpaceOptimizeLongPeriodService {
.orderByAsc(SpaceOptimizeLongDurationEnt::getIsOptimize, SpaceOptimizeLongDurationEnt::getOpenWellTime) .orderByAsc(SpaceOptimizeLongDurationEnt::getIsOptimize, SpaceOptimizeLongDurationEnt::getOpenWellTime)
); );
if (CollUtil.isNotEmpty(durationList)) { if (CollUtil.isNotEmpty(durationList)) {
List<GetSpaceOptimizeLongDurationOutput> durationOutputs = XCopyUtils.copyNewList(durationList, GetSpaceOptimizeLongDurationOutput.class); List<SpaceOptimizeDateDuration> durationOutputs = XCopyUtils.copyNewList(durationList, SpaceOptimizeDateDuration.class);
Map<String, List<GetSpaceOptimizeLongDurationOutput>> collect = durationOutputs.stream() Map<String, List<SpaceOptimizeDateDuration>> collect = durationOutputs.stream()
.collect( .collect(
Collectors.groupingBy(GetSpaceOptimizeLongDurationOutput::getWellheadId) Collectors.groupingBy(SpaceOptimizeDateDuration::getWellheadId)
); );
wellheadOutputs.forEach(w -> { wellheadOutputs.forEach(w -> {
if (collect.containsKey(w.getWellheadId())) { if (collect.containsKey(w.getWellheadId())) {
w.setDurationList(collect.get(w.getWellheadId())); Map<Integer, List<SpaceOptimizeDateDuration>> listMap = collect.get(w.getWellheadId()).stream()
.collect(Collectors.groupingBy(SpaceOptimizeDateDuration::getIsOptimize));
w.setOptimizeList(ServiceUtil.getAllDateDuration(listMap.get(0)));
w.setInitializeList(ServiceUtil.getAllDateDuration(listMap.get(1)));
} else { } else {
w.setDurationList(new ArrayList<>(0)); w.setOptimizeList(new ArrayList<>(0));
w.setInitializeList(new ArrayList<>(0));
} }
}); });
} }
......
...@@ -10,7 +10,7 @@ import pps.core.common.constant.BusinessConstant; ...@@ -10,7 +10,7 @@ import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import pps.core.space.entity.*; import pps.core.space.entity.*;
import pps.core.space.mapper.*; import pps.core.space.mapper.*;
import pps.core.space.service.data.space_optimize_mid_duration.GetSpaceOptimizeMidDurationOutput; import pps.core.space.service.data.SpaceOptimizeDateDuration;
import pps.core.space.service.data.space_optimize_mid_period.GetSpaceOptimizeMidPeriodViewInput; import pps.core.space.service.data.space_optimize_mid_period.GetSpaceOptimizeMidPeriodViewInput;
import pps.core.space.service.data.space_optimize_mid_period.GetSpaceOptimizeMidPeriodViewOutput; import pps.core.space.service.data.space_optimize_mid_period.GetSpaceOptimizeMidPeriodViewOutput;
import pps.core.space.service.data.space_optimize_mid_period.QuerySpaceOptimizeMidPeriodViewInput; import pps.core.space.service.data.space_optimize_mid_period.QuerySpaceOptimizeMidPeriodViewInput;
...@@ -93,6 +93,7 @@ public class SpaceOptimizeMidPeriodService { ...@@ -93,6 +93,7 @@ public class SpaceOptimizeMidPeriodService {
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());
...@@ -106,6 +107,7 @@ public class SpaceOptimizeMidPeriodService { ...@@ -106,6 +107,7 @@ public class SpaceOptimizeMidPeriodService {
.strategyMonth(String.valueOf(calendar.get(Calendar.MONTH) + 1)) .strategyMonth(String.valueOf(calendar.get(Calendar.MONTH) + 1))
.build())); .build()));
} }
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>()
...@@ -122,16 +124,20 @@ public class SpaceOptimizeMidPeriodService { ...@@ -122,16 +124,20 @@ public class SpaceOptimizeMidPeriodService {
.orderByAsc(SpaceOptimizeMidDurationEnt::getIsOptimize, SpaceOptimizeMidDurationEnt::getOpenWellTime) .orderByAsc(SpaceOptimizeMidDurationEnt::getIsOptimize, SpaceOptimizeMidDurationEnt::getOpenWellTime)
); );
if (CollUtil.isNotEmpty(durationList)) { if (CollUtil.isNotEmpty(durationList)) {
List<GetSpaceOptimizeMidDurationOutput> durationOutputs = XCopyUtils.copyNewList(durationList, GetSpaceOptimizeMidDurationOutput.class); List<SpaceOptimizeDateDuration> durationOutputs = XCopyUtils.copyNewList(durationList, SpaceOptimizeDateDuration.class);
Map<String, List<GetSpaceOptimizeMidDurationOutput>> collect = durationOutputs.stream() Map<String, List<SpaceOptimizeDateDuration>> collect = durationOutputs.stream()
.collect( .collect(
Collectors.groupingBy(GetSpaceOptimizeMidDurationOutput::getWellheadId) Collectors.groupingBy(SpaceOptimizeDateDuration::getWellheadId)
); );
wellheadOutputs.forEach(w -> { wellheadOutputs.forEach(w -> {
if (collect.containsKey(w.getWellheadId())) { if (collect.containsKey(w.getWellheadId())) {
w.setDurationList(collect.get(w.getWellheadId())); Map<Integer, List<SpaceOptimizeDateDuration>> listMap = collect.get(w.getWellheadId()).stream()
.collect(Collectors.groupingBy(SpaceOptimizeDateDuration::getIsOptimize));
w.setOptimizeList(ServiceUtil.getAllDateDuration(listMap.get(0)));
w.setInitializeList(ServiceUtil.getAllDateDuration(listMap.get(1)));
} else { } else {
w.setDurationList(new ArrayList<>(0)); w.setOptimizeList(new ArrayList<>(0));
w.setInitializeList(new ArrayList<>(0));
} }
}); });
} }
......
...@@ -2,16 +2,19 @@ package pps.core.space.service; ...@@ -2,16 +2,19 @@ package pps.core.space.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceOptimizeShortDurationView; import pps.core.space.entity.SpaceOptimizeShortDurationView;
import pps.core.space.entity.SpaceOptimizeShortPeriodEnt; import pps.core.space.entity.SpaceOptimizeShortPeriodEnt;
import pps.core.space.entity.SpaceOptimizeShortWellheadEnt; import pps.core.space.entity.SpaceOptimizeShortWellheadEnt;
import pps.core.space.mapper.SpaceInstitutionDetailMapper;
import pps.core.space.mapper.SpaceOptimizeShortDurationViewMapper; import pps.core.space.mapper.SpaceOptimizeShortDurationViewMapper;
import pps.core.space.mapper.SpaceOptimizeShortPeriodMapper; import pps.core.space.mapper.SpaceOptimizeShortPeriodMapper;
import pps.core.space.mapper.SpaceOptimizeShortWellheadMapper; import pps.core.space.mapper.SpaceOptimizeShortWellheadMapper;
import pps.core.space.service.data.space_optimize_short_duration.GetSpaceOptimizeShortDurationOutput; import pps.core.space.service.data.SpaceOptimizeDateDuration;
import pps.core.space.service.data.space_optimize_short_period.GetSpaceOptimizeShortPeriodViewInput; import pps.core.space.service.data.space_optimize_short_period.GetSpaceOptimizeShortPeriodViewInput;
import pps.core.space.service.data.space_optimize_short_period.GetSpaceOptimizeShortPeriodViewOutput; import pps.core.space.service.data.space_optimize_short_period.GetSpaceOptimizeShortPeriodViewOutput;
import pps.core.space.service.data.space_optimize_short_wellhead.GetSpaceOptimizeShortWellheadViewOutput; import pps.core.space.service.data.space_optimize_short_wellhead.GetSpaceOptimizeShortWellheadViewOutput;
import pps.core.space.utils.ServiceUtil;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.XContext; import xstartup.base.XContext;
...@@ -56,6 +59,10 @@ public class SpaceOptimizeShortPeriodService { ...@@ -56,6 +59,10 @@ public class SpaceOptimizeShortPeriodService {
); );
GetSpaceOptimizeShortPeriodViewOutput output = new GetSpaceOptimizeShortPeriodViewOutput(); GetSpaceOptimizeShortPeriodViewOutput output = new GetSpaceOptimizeShortPeriodViewOutput();
if (Objects.nonNull(period)) { if (Objects.nonNull(period)) {
//查间开制度详情
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
SpaceInstitutionDetailEnt detailEnt = detailMapper.selectById(period.getInstitutionId());
output.setGridTypeKey(detailEnt.getGridTypeKey());
String shortPeriodId = period.getId(); String shortPeriodId = period.getId();
//查井口列表 //查井口列表
SpaceOptimizeShortWellheadMapper wellheadMapper = context.getBean(SpaceOptimizeShortWellheadMapper.class); SpaceOptimizeShortWellheadMapper wellheadMapper = context.getBean(SpaceOptimizeShortWellheadMapper.class);
...@@ -71,12 +78,12 @@ public class SpaceOptimizeShortPeriodService { ...@@ -71,12 +78,12 @@ public class SpaceOptimizeShortPeriodService {
.build() .build()
); );
if (CollUtil.isNotEmpty(durationViewList)) { if (CollUtil.isNotEmpty(durationViewList)) {
Map<String, List<GetSpaceOptimizeShortDurationOutput>> collect = XCopyUtils.copyNewList(durationViewList, GetSpaceOptimizeShortDurationOutput.class) Map<String, List<SpaceOptimizeDateDuration>> collect = XCopyUtils.copyNewList(durationViewList, SpaceOptimizeDateDuration.class)
.stream() .stream()
.collect(Collectors.groupingBy(GetSpaceOptimizeShortDurationOutput::getWellheadId)); .collect(Collectors.groupingBy(SpaceOptimizeDateDuration::getWellheadId));
wellheadViewOutputs.forEach(w -> { wellheadViewOutputs.forEach(w -> {
if (collect.containsKey(w.getWellheadId())) { if (collect.containsKey(w.getWellheadId())) {
w.setDurationList(collect.get(w.getWellheadId())); w.setDurationList(ServiceUtil.getAllDateDuration(collect.get(w.getWellheadId())));
} else { } else {
w.setDurationList(new ArrayList<>(0)); w.setDurationList(new ArrayList<>(0));
} }
......
package pps.core.space.service.data;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
/**
* 间开优化时间区间
*
* @author ZWT
* @date 2023/09/12 15:17
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class SpaceOptimizeDateDuration {
@XText("井口ID")
private String wellheadId;
@XText("是否优化(0_是;1_否)")
private Integer isOptimize;
@XText("发电类型key(字典获取)")
private String generationTypeKey;
@XText("开井时间")
private String openWellTime;
@XText("关井时间")
private String closeWellTime;
@XText("井口状态:0_关井,1_开井")
private Integer isOpen;
}
package pps.core.space.service.data;
import cn.hutool.core.date.DateTime;
import lombok.Data;
import xstartup.annotation.XText;
/**
* 已优化日期列表
*
* @author ZWT
* @date 2023/09/12
*/
@Data
public class SpaceOptimizeDateOutput {
@XText("优化日期")
private DateTime dateTime;
@XText("优化状态编码(0_已优化;1_未优化)")
private Integer optimizeCode;
@XText("优化状态值")
private String optimizeValue;
}
...@@ -2,6 +2,7 @@ package pps.core.space.service.data.space_optimize_long_period; ...@@ -2,6 +2,7 @@ package pps.core.space.service.data.space_optimize_long_period;
import lombok.Data; import lombok.Data;
import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput; import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput;
import pps.core.space.service.data.SpaceOptimizeDateOutput;
import pps.core.space.service.data.space_optimize_long_wellhead.GetSpaceOptimizeLongWellheadOutput; import pps.core.space.service.data.space_optimize_long_wellhead.GetSpaceOptimizeLongWellheadOutput;
import xstartup.annotation.XText; import xstartup.annotation.XText;
...@@ -35,6 +36,18 @@ public class GetSpaceOptimizeLongPeriodViewOutput { ...@@ -35,6 +36,18 @@ public class GetSpaceOptimizeLongPeriodViewOutput {
@XText("优化截止日期") @XText("优化截止日期")
private Date optimizeDeadline; private Date optimizeDeadline;
/**
* 电网类型key
*/
@XText("电网类型key(字典获取)")
private String gridTypeKey;
/**
* 已优化日期列表
*/
@XText("已优化日期列表")
List<SpaceOptimizeDateOutput> dateList;
/** /**
* 井口信息 * 井口信息
*/ */
......
package pps.core.space.service.data.space_optimize_long_wellhead; package pps.core.space.service.data.space_optimize_long_wellhead;
import lombok.Data; import lombok.Data;
import pps.core.space.service.data.space_optimize_long_duration.GetSpaceOptimizeLongDurationOutput; import pps.core.space.service.data.SpaceOptimizeDateDuration;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.util.List; import java.util.List;
...@@ -25,8 +25,14 @@ public class GetSpaceOptimizeLongWellheadOutput { ...@@ -25,8 +25,14 @@ public class GetSpaceOptimizeLongWellheadOutput {
private String wellNumber; private String wellNumber;
/** /**
* 井口配置 * 井口配置(未优化)
*/ */
@XText("井口配置") @XText("井口配置(未优化)")
private List<GetSpaceOptimizeLongDurationOutput> durationList; private List<SpaceOptimizeDateDuration> initializeList;
/**
* 井口配置(已优化)
*/
@XText("井口配置(已优化)")
private List<SpaceOptimizeDateDuration> optimizeList;
} }
...@@ -2,6 +2,7 @@ package pps.core.space.service.data.space_optimize_mid_period; ...@@ -2,6 +2,7 @@ package pps.core.space.service.data.space_optimize_mid_period;
import lombok.Data; import lombok.Data;
import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput; import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput;
import pps.core.space.service.data.SpaceOptimizeDateOutput;
import pps.core.space.service.data.space_optimize_mid_wellhead.GetSpaceOptimizeMidWellheadOutput; import pps.core.space.service.data.space_optimize_mid_wellhead.GetSpaceOptimizeMidWellheadOutput;
import xstartup.annotation.XText; import xstartup.annotation.XText;
...@@ -35,6 +36,18 @@ public class GetSpaceOptimizeMidPeriodViewOutput { ...@@ -35,6 +36,18 @@ public class GetSpaceOptimizeMidPeriodViewOutput {
@XText("优化截止日期") @XText("优化截止日期")
private Date optimizeDeadline; private Date optimizeDeadline;
/**
* 电网类型key
*/
@XText("电网类型key(字典获取)")
private String gridTypeKey;
/**
* 已优化日期列表
*/
@XText("已优化日期列表")
List<SpaceOptimizeDateOutput> dateList;
/** /**
* 策略配置列表 * 策略配置列表
*/ */
......
package pps.core.space.service.data.space_optimize_mid_wellhead; package pps.core.space.service.data.space_optimize_mid_wellhead;
import lombok.Data; import lombok.Data;
import pps.core.space.service.data.space_optimize_mid_duration.GetSpaceOptimizeMidDurationOutput; import pps.core.space.service.data.SpaceOptimizeDateDuration;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.util.List; import java.util.List;
...@@ -25,8 +25,14 @@ public class GetSpaceOptimizeMidWellheadOutput { ...@@ -25,8 +25,14 @@ public class GetSpaceOptimizeMidWellheadOutput {
private String wellNumber; private String wellNumber;
/** /**
* 井口配置 * 井口配置(未优化)
*/ */
@XText("井口配置") @XText("井口配置(未优化)")
private List<GetSpaceOptimizeMidDurationOutput> durationList; private List<SpaceOptimizeDateDuration> initializeList;
/**
* 井口配置(已优化)
*/
@XText("井口配置(已优化)")
private List<SpaceOptimizeDateDuration> optimizeList;
} }
...@@ -15,6 +15,12 @@ import java.util.List; ...@@ -15,6 +15,12 @@ import java.util.List;
@Data @Data
public class GetSpaceOptimizeShortPeriodViewOutput { public class GetSpaceOptimizeShortPeriodViewOutput {
/**
* 电网类型key
*/
@XText("电网类型key(字典获取)")
private String gridTypeKey;
/** /**
* 井口列表 * 井口列表
*/ */
......
package pps.core.space.service.data.space_optimize_short_wellhead; package pps.core.space.service.data.space_optimize_short_wellhead;
import lombok.Data; import lombok.Data;
import pps.core.space.service.data.space_optimize_short_duration.GetSpaceOptimizeShortDurationOutput; import pps.core.space.service.data.SpaceOptimizeDateDuration;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.util.List; import java.util.List;
...@@ -25,5 +25,5 @@ public class GetSpaceOptimizeShortWellheadViewOutput { ...@@ -25,5 +25,5 @@ public class GetSpaceOptimizeShortWellheadViewOutput {
* 井口时段配置 * 井口时段配置
*/ */
@XText("井口时段配置") @XText("井口时段配置")
private List<GetSpaceOptimizeShortDurationOutput> durationList; private List<SpaceOptimizeDateDuration> durationList;
} }
package pps.core.space.utils; package pps.core.space.utils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.IBasePowerLineCloudService; import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.IBasePriceStrategyCloudService; import pps.cloud.base.service.IBasePriceStrategyCloudService;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput; import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput; import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput; import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput; import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
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_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;
import pps.cloud.system.service.SysOrganizationCloudService; import pps.cloud.system.service.SysOrganizationCloudService;
import pps.cloud.system.service.SystemAreaService;
import pps.cloud.system.service.SystemDictionaryService; import pps.cloud.system.service.SystemDictionaryService;
import pps.cloud.system.service.data.*; import pps.cloud.system.service.data.*;
import pps.core.common.constant.BusinessConstant;
import pps.core.space.service.data.SpaceOptimizeDateDuration;
import pps.core.space.service.data.SpaceOptimizeDateOutput;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.data.XListResult; import xstartup.data.XListResult;
import xstartup.data.XSingleResult; import xstartup.data.XSingleResult;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -70,38 +72,6 @@ public class ServiceUtil { ...@@ -70,38 +72,6 @@ public class ServiceUtil {
.orElse(null); .orElse(null);
} }
/**
* 获取区域Map
*
* @param context 上下文
* @return {@link Map}<{@link Integer}, {@link String}>
*/
public static Map<Integer, String> getSysAreaMap(XContext context) {
SystemAreaService systemAreaService = context.getBean(SystemAreaService.class);
XListResult<GetSysAreaOutput> sysAreaList = systemAreaService.getSysAreaList(context, new GetSysAreaInput());
sysAreaList.throwIfFail();
return sysAreaList.getResult().stream()
.collect(Collectors.toMap(GetSysAreaOutput::getId, GetSysAreaOutput::getName));
}
/**
* 获取所有path包含组织ID的组织
*
* @param context 上下文
* @param ouId ou id
* @return {@link List}<{@link String}>
*/
public static List<String> getOrgIdsByPath(XContext context, String ouId) {
SysOrganizationCloudService organizationCloudService = context.getBean(SysOrganizationCloudService.class);
GetAllOuListByOuIdInput ouIdInput = new GetAllOuListByOuIdInput();
ouIdInput.setOuId(ouId);
XListResult<GetSysOrganizationViewOutput> allListByOuId = organizationCloudService.getAllListByOuId(context, ouIdInput);
allListByOuId.throwIfFail();
return allListByOuId.getResult().stream()
.map(GetSysOrganizationViewOutput::getId)
.collect(Collectors.toList());
}
/** /**
* 通过组织机构ID集合获取组织名称 * 通过组织机构ID集合获取组织名称
* *
...@@ -158,20 +128,6 @@ public class ServiceUtil { ...@@ -158,20 +128,6 @@ public class ServiceUtil {
); );
} }
/**
* 条件查询输电线路井口列表
*
* @param context 上下文
* @param input 输入
* @return {@link List}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/
public static List<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input) {
IBasePowerLineCloudService lineService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> result = lineService.getPowerLineWellheadList(context, input);
result.throwIfFail();
return result.getResult();
}
/** /**
* 条件查询策略配置详情列表 * 条件查询策略配置详情列表
* *
...@@ -185,4 +141,95 @@ public class ServiceUtil { ...@@ -185,4 +141,95 @@ public class ServiceUtil {
result.throwIfFail(); result.throwIfFail();
return result.getResult(); return result.getResult();
} }
/**
* 获取优化日期列表
*
* @param begin 开始
* @param end 终止
* @return {@link List}<{@link SpaceOptimizeDateOutput}>
*/
public static List<SpaceOptimizeDateOutput> getOptimizeDateList(Date begin, Date end) {
return DateUtil.rangeToList(
DateUtil.beginOfDay(begin),
DateUtil.endOfDay(end),
DateField.DAY_OF_YEAR).stream()
.map(r -> {
SpaceOptimizeDateOutput spaceOptimizeDateOutput = new SpaceOptimizeDateOutput();
spaceOptimizeDateOutput.setDateTime(r);
spaceOptimizeDateOutput.setOptimizeCode(BusinessConstant.ZERO);
spaceOptimizeDateOutput.setOptimizeValue("已优化");
return spaceOptimizeDateOutput;
}).collect(Collectors.toList());
}
/**
* 封装全天时间段
*
* @param optimizeList 优化列表
* @return {@link List}<{@link SpaceOptimizeDateDuration}>
*/
public static List<SpaceOptimizeDateDuration> getAllDateDuration(List<SpaceOptimizeDateDuration> optimizeList) {
List<SpaceOptimizeDateDuration> allList = new ArrayList<>(16);
if (CollUtil.isEmpty(optimizeList)) {
allList.add(
SpaceOptimizeDateDuration.builder()
.openWellTime("00:00")
.closeWellTime("24:00")
.isOpen(0)
.build()
);
return allList;
}
int size = optimizeList.size();
for (int i = 0; i < size; i++) {
SpaceOptimizeDateDuration optimize = optimizeList.get(i);
String openWellTime = optimize.getOpenWellTime();
String closeWellTime = optimize.getCloseWellTime();
optimize.setIsOpen(1);
if (i == 0) {
//如果开始时间不是从00:00开始,初始化开始时间为关井时间
if (!StringUtils.equals("00:00", openWellTime)) {
allList.add(
SpaceOptimizeDateDuration.builder()
.openWellTime("00:00")
.closeWellTime(openWellTime)
.isOpen(0)
.build()
);
}
}
//将当前时段添加到新集合
allList.add(optimize);
//判断当前时段到下一时段间是否有关井时段
int next = i + 1;
int last = size - 1;
if (next <= last) {
SpaceOptimizeDateDuration nextOptimize = optimizeList.get(next);
String nextOpenWellTime = nextOptimize.getOpenWellTime();
if (!StringUtils.equals(closeWellTime, nextOpenWellTime)) {
allList.add(
SpaceOptimizeDateDuration.builder()
.openWellTime(closeWellTime)
.closeWellTime(nextOpenWellTime)
.isOpen(0)
.build()
);
}
}
if (i == last) {
//如果结束时间不是24:00开始,初始化最终关井时间
if (!StringUtils.equals("24:00", closeWellTime)) {
allList.add(
SpaceOptimizeDateDuration.builder()
.openWellTime(closeWellTime)
.closeWellTime("24:00")
.isOpen(0)
.build()
);
}
}
}
return allList;
}
} }
\ No newline at end of file
...@@ -101,4 +101,28 @@ ...@@ -101,4 +101,28 @@
) )
</foreach> </foreach>
</insert> </insert>
<select id="selectListByInstitutionIds" parameterType="pps.core.space.entity.SpaceInstitutionWellheadView"
resultMap="BaseResultMap">
SELECT
DISTINCT
institution_id,
wellhead_id,
well_number,
run_type_key,
interval_type_key,
interval_describe,
start_seq,
open_well_day,
close_well_day,
run_duration
FROM
space_institution_wellhead
WHERE
is_deleted = 1
AND institution_id IN
<foreach collection="list" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
<version>1.15.169-xstartup-cloud</version> <version>1.15.169-xstartup-cloud</version>
<relativePath/> <relativePath/>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>gf</groupId> <groupId>gf</groupId>
<artifactId>pps-cloud-prediction</artifactId> <artifactId>pps-cloud-prediction</artifactId>
...@@ -16,6 +15,15 @@ ...@@ -16,6 +15,15 @@
<properties> <properties>
<maven.build.timestamp.format>yyyy.MMdd.HHmmss</maven.build.timestamp.format> <maven.build.timestamp.format>yyyy.MMdd.HHmmss</maven.build.timestamp.format>
</properties> </properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build> <build>
<plugins> <plugins>
<!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 --> <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
......
package pps.cloud.prediction.service;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XListResult;
import xstartup.feature.api.annotation.XApiPost;
/**
* 光伏预测Cloud模块
*
* @author ZWT
* @date 2023/09/13 18:49
*/
@XService
@XText("光伏预测Cloud模块")
public interface IPlantPredictedPowerCloudService {
/**
* 光伏预测Cloud模块--条件查询时段发电量平均值
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryPlantPredictedPowerOutput}>
*/
@XText("光伏预测Cloud模块--条件查询时段发电量平均值")
@XApiPost
XListResult<DynamicQueryPlantPredictedPowerOutput> queryAveragePowerGenerationListByParam(XContext context, DynamicQueryPlantPredictedPowerInput input);
}
\ No newline at end of file
package pps.cloud.prediction.service.data.plant_predicted_power_data;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.util.List;
/**
* 光伏预测Cloud模块
*
* @author ZWT
* @date 2023/09/13
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DynamicQueryPlantPredictedPowerInput {
@XText("电站ID")
private String plantId;
@XText("电站ID集合")
private List<String> plantIds;
@XText("年")
private String yearTime;
@XText("月")
private String monthTime;
}
package pps.cloud.prediction.service.data.plant_predicted_power_data;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 光伏预测Cloud模块
*
* @author ZWT
* @date 2023/09/13
*/
@Data
public class DynamicQueryPlantPredictedPowerOutput {
@XText("日期")
private String dataDate;
@XText("年")
private String yearTime;
@XText("月")
private String monthTime;
@XText("日")
private String dayTime;
@XText("时")
private String hourTime;
@XText("分")
private String minTime;
@XText("预测功率")
private BigDecimal power;
}
...@@ -27,6 +27,12 @@ ...@@ -27,6 +27,12 @@
<version>1.0.0-pps</version> <version>1.0.0-pps</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>gf</groupId>
<artifactId>pps-cloud-prediction</artifactId>
<version>1.0.0-pps</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
......
package pps.core.prediction.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.cloud.prediction.service.IPlantPredictedPowerCloudService;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import pps.core.prediction.entity.PlantPredictedPowerDataEnt;
import pps.core.prediction.mapper.PlantPredictedPowerDataMapper;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import java.util.ArrayList;
import java.util.List;
/**
* 光伏预测Cloud模块
*
* @author ZWT
* @date 2023/09/13 19:05
*/
@XService
public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPowerCloudService {
/**
* 光伏预测Cloud模块--条件查询时段发电量平均值
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryPlantPredictedPowerOutput}>
*/
@Override
public XListResult<DynamicQueryPlantPredictedPowerOutput> queryAveragePowerGenerationListByParam(XContext context, DynamicQueryPlantPredictedPowerInput input) {
String plantId = input.getPlantId();
List<String> plantIds = input.getPlantIds();
String yearTime = input.getYearTime();
String monthTime = input.getMonthTime();
PlantPredictedPowerDataMapper mapper = context.getBean(PlantPredictedPowerDataMapper.class);
List<PlantPredictedPowerDataEnt> list = mapper.selectList(
new QueryWrapper<PlantPredictedPowerDataEnt>()
.select("data_date",
"year_time",
"month_time",
"day_time",
"hour_time",
"min_time",
"AVG( power ) AS power")
.lambda()
.eq(StringUtils.isNotBlank(plantId), PlantPredictedPowerDataEnt::getPlantId, plantId)
.in(CollUtil.isNotEmpty(plantIds), PlantPredictedPowerDataEnt::getPlantId, plantIds)
.eq(StringUtils.isNotBlank(yearTime), PlantPredictedPowerDataEnt::getYearTime, yearTime)
.eq(StringUtils.isNotBlank(monthTime), PlantPredictedPowerDataEnt::getMonthTime, monthTime)
.groupBy(PlantPredictedPowerDataEnt::getDataDate,
PlantPredictedPowerDataEnt::getYearTime,
PlantPredictedPowerDataEnt::getMonthTime,
PlantPredictedPowerDataEnt::getDayTime,
PlantPredictedPowerDataEnt::getHourTime,
PlantPredictedPowerDataEnt::getMinTime)
);
List<DynamicQueryPlantPredictedPowerOutput> outputs;
if (CollUtil.isEmpty(list)) {
outputs = new ArrayList<>(0);
} else {
outputs = XCopyUtils.copyNewList(list, DynamicQueryPlantPredictedPowerOutput.class);
}
return XListResult.success(outputs);
}
}
package app; package app;
import pps.core.task.job.SpaceOptimizeLongJob;
import pps.core.task.job.TestJob; import pps.core.task.job.TestJob;
import pps.core.task.job.WeatherJob; import pps.core.task.job.WeatherJob;
import xstartup.base.XStartup; import xstartup.base.XStartup;
...@@ -19,19 +20,20 @@ import xstartup.service.job.conf.XJobServiceConf; ...@@ -19,19 +20,20 @@ import xstartup.service.job.conf.XJobServiceConf;
//import xstartup.feature.cloud.XCloudHuaweiCseFeature; //import xstartup.feature.cloud.XCloudHuaweiCseFeature;
public class DeployPpsAllApplication { public class DeployPpsAllApplication {
public static void main(String... args){ public static void main(String... args) {
System.out.println(XEncryptUtils.encrypt("!qwe@azx#12W3")); System.out.println(XEncryptUtils.encrypt("!qwe@azx#12W3"));
XStartup startup = new XStartupApplication("pps"); XStartup startup = new XStartupApplication("pps");
startup.config(new XServerConf(22060).naming("pps-all")); startup.config(new XServerConf(22060).naming("pps-all"));
startup.config(new XServiceConf("pps")); startup.config(new XServiceConf("pps"));
startup.enable(XApiFeature.class) startup.enable(XApiFeature.class)
.config(new XApiCookieConf("%4bH8s9&",43200)); .config(new XApiCookieConf("%4bH8s9&", 43200));
startup.enable(XSwaggerFeature.class); startup.enable(XSwaggerFeature.class);
startup.enable(XMybatisFeature.class); startup.enable(XMybatisFeature.class);
startup.enable(XRpcFeature.class); startup.enable(XRpcFeature.class);
startup.enable(XCorsFeature.class); startup.enable(XCorsFeature.class);
startup.enable(XJobFeature.class).config(new XJobServiceConf(TestJob.class)); startup.enable(XJobFeature.class).config(new XJobServiceConf(TestJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(WeatherJob.class)); startup.enable(XJobFeature.class).config(new XJobServiceConf(WeatherJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(SpaceOptimizeLongJob.class));
//startup.enable(XCloudHuaweiCseFeature.class); //startup.enable(XCloudHuaweiCseFeature.class);
startup.run(args); startup.run(args);
} }
......
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