Commit 1bd1811c authored by ZWT's avatar ZWT

feat(能源管理系统): 间开制度管理

1.开发中短期间开优化模块-中短期优化详情接口,完成接口冒烟测试并生成接口文档;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 9183881c
package pps.core.space.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText;
......@@ -14,6 +17,9 @@ import java.io.Serializable;
* @date 2023/09/05
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class SpaceOptimizeShortDurationView extends BaseModel implements Serializable {
@XText("井口记录ID")
......
package pps.core.space.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText;
......@@ -14,6 +17,9 @@ import java.io.Serializable;
* @date 2023/09/05
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class SpaceOptimizeShortWellheadView extends BaseModel implements Serializable {
@XText("短期优化周期ID")
......
......@@ -15,5 +15,11 @@ import java.util.List;
public interface SpaceOptimizeShortDurationViewMapper {
SpaceOptimizeShortDurationView selectOne(SpaceOptimizeShortDurationView record);
/**
* 查询井口列表已优化后为准
*
* @param record 记录
* @return {@link List}<{@link SpaceOptimizeShortDurationView}>
*/
List<SpaceOptimizeShortDurationView> selectList(SpaceOptimizeShortDurationView record);
}
package pps.core.space.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.core.space.entity.SpaceOptimizeShortDurationView;
import pps.core.space.entity.SpaceOptimizeShortPeriodEnt;
import pps.core.space.entity.SpaceOptimizeShortPeriodView;
import pps.core.space.entity.SpaceOptimizeShortWellheadEnt;
import pps.core.space.mapper.SpaceOptimizeShortDurationViewMapper;
import pps.core.space.mapper.SpaceOptimizeShortPeriodMapper;
import pps.core.space.mapper.SpaceOptimizeShortPeriodViewMapper;
import pps.core.space.service.data.space_optimize_short_period.*;
import pps.core.space.mapper.SpaceOptimizeShortWellheadMapper;
import pps.core.space.service.data.space_optimize_short_duration.GetSpaceOptimizeShortDurationOutput;
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_wellhead.GetSpaceOptimizeShortWellheadViewOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.data.CustomQueryInput;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XPageResult;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.error.XError;
import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost;
import xstartup.feature.mybatis.helper.XMapperHelper;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 短期间开优化模块
......@@ -34,113 +36,57 @@ import java.util.List;
@XText("短期间开优化模块")
public class SpaceOptimizeShortPeriodService {
@XApiAnonymous
@XApiPost
public XServiceResult createSpaceOptimizeShortPeriod(XContext context, CreateSpaceOptimizeShortPeriodInput input) {
SpaceOptimizeShortPeriodMapper mapper = context.getBean(SpaceOptimizeShortPeriodMapper.class);
SpaceOptimizeShortPeriodEnt entity = new SpaceOptimizeShortPeriodEnt();
XCopyUtils.copyObject(input, entity);
mapper.insert(entity);
return XServiceResult.OK;
}
@XApiAnonymous
@XApiPost
public XServiceResult updateSpaceOptimizeShortPeriod(XContext context, UpdateSpaceOptimizeShortPeriodInput input) {
SpaceOptimizeShortPeriodMapper mapper = context.getBean(SpaceOptimizeShortPeriodMapper.class);
QueryWrapper<SpaceOptimizeShortPeriodEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SpaceOptimizeShortPeriodEnt::getId, input.getId());
SpaceOptimizeShortPeriodEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XServiceResult.error(context, XError.NotFound);
}
XCopyUtils.copyObject(input, entity);
mapper.updateById(entity);
return XServiceResult.OK;
}
@XApiAnonymous
@XApiPost
public XServiceResult deleteSpaceOptimizeShortPeriod(XContext context, DeleteSpaceOptimizeShortPeriodInput input) {
SpaceOptimizeShortPeriodMapper mapper = context.getBean(SpaceOptimizeShortPeriodMapper.class);
QueryWrapper<SpaceOptimizeShortPeriodEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SpaceOptimizeShortPeriodEnt::getId, input.getId());
SpaceOptimizeShortPeriodEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XServiceResult.error(context, XError.NotFound);
}
mapper.deleteById(entity);
return XServiceResult.OK;
}
@XApiAnonymous
@XApiGet
public XSingleResult<GetSpaceOptimizeShortPeriodOutput> getSpaceOptimizeShortPeriod(XContext context, GetSpaceOptimizeShortPeriodInput input) {
SpaceOptimizeShortPeriodMapper mapper = context.getBean(SpaceOptimizeShortPeriodMapper.class);
QueryWrapper<SpaceOptimizeShortPeriodEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SpaceOptimizeShortPeriodEnt::getId, input.getId());
SpaceOptimizeShortPeriodEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XSingleResult.error(context, XError.NotFound);
}
GetSpaceOptimizeShortPeriodOutput output = new GetSpaceOptimizeShortPeriodOutput();
XCopyUtils.copyObject(entity, output);
return XSingleResult.success(output);
}
@XApiAnonymous
@XApiGet
public XPageResult<QuerySpaceOptimizeShortPeriodOutput> querySpaceOptimizeShortPeriod(XContext context, QuerySpaceOptimizeShortPeriodInput input) {
SpaceOptimizeShortPeriodMapper mapper = context.getBean(SpaceOptimizeShortPeriodMapper.class);
QueryWrapper<SpaceOptimizeShortPeriodEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().like(SpaceOptimizeShortPeriodEnt::getId, input.getId())
.eq(SpaceOptimizeShortPeriodEnt::getIsDeleted, input.getIsDeleted())
.like(SpaceOptimizeShortPeriodEnt::getCreateById, input.getCreateById())
.like(SpaceOptimizeShortPeriodEnt::getCreateByName, input.getCreateByName())
.eq(SpaceOptimizeShortPeriodEnt::getCreateTime, input.getCreateTime())
.like(SpaceOptimizeShortPeriodEnt::getModifyById, input.getModifyById())
.like(SpaceOptimizeShortPeriodEnt::getModifyByName, input.getModifyByName())
.eq(SpaceOptimizeShortPeriodEnt::getModifyTime, input.getModifyTime())
.like(SpaceOptimizeShortPeriodEnt::getLineId, input.getLineId())
.like(SpaceOptimizeShortPeriodEnt::getInstitutionId, input.getInstitutionId())
.eq(SpaceOptimizeShortPeriodEnt::getOptimizeState, input.getOptimizeState())
.eq(SpaceOptimizeShortPeriodEnt::getOptimizeDate, input.getOptimizeDate());
return XMapperHelper.query(mapper, input, queryWrapper, QuerySpaceOptimizeShortPeriodOutput.class);
}
@XApiAnonymous
@XApiGet
public XPageResult<QuerySpaceOptimizeShortPeriodOutput> dynamicQuerySpaceOptimizeShortPeriod(XContext context, CustomQueryInput input) {
SpaceOptimizeShortPeriodMapper mapper = context.getBean(SpaceOptimizeShortPeriodMapper.class);
return XMapperHelper.query(mapper, input, SpaceOptimizeShortPeriodEnt.class, QuerySpaceOptimizeShortPeriodOutput.class);
}
/**
* 短期间开优化--详情
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetSpaceOptimizeShortPeriodViewOutput}>
*/
@XApiAnonymous
@XApiGet
@XText("短期间开优化--详情")
public XSingleResult<GetSpaceOptimizeShortPeriodViewOutput> getSpaceOptimizeShortPeriodView(XContext context, GetSpaceOptimizeShortPeriodViewInput input) {
SpaceOptimizeShortPeriodViewMapper mapper = context.getBean(SpaceOptimizeShortPeriodViewMapper.class);
SpaceOptimizeShortPeriodView record = new SpaceOptimizeShortPeriodView();
XCopyUtils.copyObject(input, record);
SpaceOptimizeShortPeriodView view = mapper.selectOne(record);
if (view == null) {
return XSingleResult.error(context, XError.NotFound);
}
SpaceOptimizeShortPeriodMapper mapper = context.getBean(SpaceOptimizeShortPeriodMapper.class);
//查当日记录
SpaceOptimizeShortPeriodEnt period = mapper.selectOne(
new LambdaQueryWrapper<SpaceOptimizeShortPeriodEnt>()
.eq(SpaceOptimizeShortPeriodEnt::getLineId, input.getLineId())
.apply("DATE_FORMAT( optimize_date, '%Y-%m-%d' ) = curdate()")
);
GetSpaceOptimizeShortPeriodViewOutput output = new GetSpaceOptimizeShortPeriodViewOutput();
XCopyUtils.copyObject(view, output);
if (Objects.nonNull(period)) {
String shortPeriodId = period.getId();
//查井口列表
SpaceOptimizeShortWellheadMapper wellheadMapper = context.getBean(SpaceOptimizeShortWellheadMapper.class);
List<SpaceOptimizeShortWellheadEnt> wellheadList = wellheadMapper.selectList(new LambdaQueryWrapper<SpaceOptimizeShortWellheadEnt>()
.eq(SpaceOptimizeShortWellheadEnt::getShortPeriodId, shortPeriodId)
);
if (CollUtil.isNotEmpty(wellheadList)) {
List<GetSpaceOptimizeShortWellheadViewOutput> wellheadViewOutputs = XCopyUtils.copyNewList(wellheadList, GetSpaceOptimizeShortWellheadViewOutput.class);
//查井口间隔配置
SpaceOptimizeShortDurationViewMapper durationViewMapper = context.getBean(SpaceOptimizeShortDurationViewMapper.class);
List<SpaceOptimizeShortDurationView> durationViewList = durationViewMapper.selectList(SpaceOptimizeShortDurationView.builder()
.shortPeriodId(shortPeriodId)
.build()
);
if (CollUtil.isNotEmpty(durationViewList)) {
Map<String, List<GetSpaceOptimizeShortDurationOutput>> collect = XCopyUtils.copyNewList(durationViewList, GetSpaceOptimizeShortDurationOutput.class)
.stream()
.collect(Collectors.groupingBy(GetSpaceOptimizeShortDurationOutput::getWellheadId));
wellheadViewOutputs.forEach(w -> {
if (collect.containsKey(w.getWellheadId())) {
w.setDurationList(collect.get(w.getWellheadId()));
} else {
w.setDurationList(new ArrayList<>(0));
}
});
}
output.setWellheadList(wellheadViewOutputs);
}
} else {
output.setWellheadList(new ArrayList<>(0));
}
return XSingleResult.success(output);
}
@XApiAnonymous
@XApiGet
public XPageResult<QuerySpaceOptimizeShortPeriodViewOutput> querySpaceOptimizeShortPeriodView(XContext context, QuerySpaceOptimizeShortPeriodViewInput input) {
SpaceOptimizeShortPeriodViewMapper mapper = context.getBean(SpaceOptimizeShortPeriodViewMapper.class);
SpaceOptimizeShortPeriodView record = new SpaceOptimizeShortPeriodView();
XCopyUtils.copyObject(input, record);
PageHelper.startPage(input.getPage(), input.getLimit());
List<SpaceOptimizeShortPeriodView> list = mapper.selectList(record);
PageInfo<SpaceOptimizeShortPeriodView> pageInfo = new PageInfo<>(list);
List<QuerySpaceOptimizeShortPeriodViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QuerySpaceOptimizeShortPeriodViewOutput.class);
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
}
}
\ No newline at end of file
package pps.core.space.service.data.space_optimize_short_duration;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.Date;
/**
* 井口时段配置
*
* @author ZWT
* @date 2023/09/08
*/
@Data
public class GetSpaceOptimizeShortDurationOutput {
@XText("ID")
private String id;
@XText("是否删除(0_是;1_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("井口记录ID")
private String recordId;
@XText("短期优化周期ID")
private String shortPeriodId;
@XText("井口ID")
private String wellheadId;
......@@ -49,125 +26,4 @@ public class GetSpaceOptimizeShortDurationOutput {
@XText("关井时间")
private String closeWellTime;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public Integer getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(Integer value) {
this.isDeleted = value;
}
public String getCreateById() {
return this.createById;
}
public void setCreateById(String value) {
this.createById = value;
}
public String getCreateByName() {
return this.createByName;
}
public void setCreateByName(String value) {
this.createByName = value;
}
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date value) {
this.createTime = value;
}
public String getModifyById() {
return this.modifyById;
}
public void setModifyById(String value) {
this.modifyById = value;
}
public String getModifyByName() {
return this.modifyByName;
}
public void setModifyByName(String value) {
this.modifyByName = value;
}
public Date getModifyTime() {
return this.modifyTime;
}
public void setModifyTime(Date value) {
this.modifyTime = value;
}
public String getRecordId() {
return this.recordId;
}
public void setRecordId(String value) {
this.recordId = value;
}
public String getShortPeriodId() {
return this.shortPeriodId;
}
public void setShortPeriodId(String value) {
this.shortPeriodId = value;
}
public String getWellheadId() {
return this.wellheadId;
}
public void setWellheadId(String value) {
this.wellheadId = value;
}
public Integer getIsOptimize() {
return this.isOptimize;
}
public void setIsOptimize(Integer value) {
this.isOptimize = value;
}
public String getGenerationTypeKey() {
return this.generationTypeKey;
}
public void setGenerationTypeKey(String value) {
this.generationTypeKey = value;
}
public String getOpenWellTime() {
return this.openWellTime;
}
public void setOpenWellTime(String value) {
this.openWellTime = value;
}
public String getCloseWellTime() {
return this.closeWellTime;
}
public void setCloseWellTime(String value) {
this.closeWellTime = value;
}
}
package pps.core.space.service.data.space_optimize_short_period;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.Date;
/**
* 短期间开优化周期记录
*
* @author ZWT
* @date 2023/09/07
*/
@Data
public class GetSpaceOptimizeShortPeriodViewInput {
@XText("ID")
private String id;
@XText("是否删除(0_是;1_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("线路ID")
@NotBlank(message = "缺少线路ID")
private String lineId;
@XText("间开制度ID")
private String institutionId;
@XText("优化状态(0_已优化;1_未优化)")
private Integer optimizeState;
@XText("优化日期")
private Date optimizeDate;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public Integer getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(Integer value) {
this.isDeleted = value;
}
public String getCreateById() {
return this.createById;
}
public void setCreateById(String value) {
this.createById = value;
}
public String getCreateByName() {
return this.createByName;
}
public void setCreateByName(String value) {
this.createByName = value;
}
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date value) {
this.createTime = value;
}
public String getModifyById() {
return this.modifyById;
}
public void setModifyById(String value) {
this.modifyById = value;
}
public String getModifyByName() {
return this.modifyByName;
}
public void setModifyByName(String value) {
this.modifyByName = value;
}
public Date getModifyTime() {
return this.modifyTime;
}
public void setModifyTime(Date value) {
this.modifyTime = value;
}
public String getLineId() {
return this.lineId;
}
public void setLineId(String value) {
this.lineId = value;
}
public String getInstitutionId() {
return this.institutionId;
}
public void setInstitutionId(String value) {
this.institutionId = value;
}
public Integer getOptimizeState() {
return this.optimizeState;
}
public void setOptimizeState(Integer value) {
this.optimizeState = value;
}
public Date getOptimizeDate() {
return this.optimizeDate;
}
public void setOptimizeDate(Date value) {
this.optimizeDate = value;
}
}
package pps.core.space.service.data.space_optimize_short_period;
import lombok.Data;
import pps.core.space.service.data.space_optimize_short_wellhead.GetSpaceOptimizeShortWellheadViewOutput;
import xstartup.annotation.XText;
import java.util.Date;
import java.util.List;
/**
* 短期间开优化周期记录
*
* @author ZWT
* @date 2023/09/07
*/
@Data
public class GetSpaceOptimizeShortPeriodViewOutput {
@XText("ID")
private String id;
@XText("是否删除(0_是;1_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("线路ID")
private String lineId;
@XText("间开制度ID")
private String institutionId;
@XText("优化状态(0_已优化;1_未优化)")
private Integer optimizeState;
@XText("优化日期")
private Date optimizeDate;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public Integer getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(Integer value) {
this.isDeleted = value;
}
public String getCreateById() {
return this.createById;
}
public void setCreateById(String value) {
this.createById = value;
}
public String getCreateByName() {
return this.createByName;
}
public void setCreateByName(String value) {
this.createByName = value;
}
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date value) {
this.createTime = value;
}
public String getModifyById() {
return this.modifyById;
}
public void setModifyById(String value) {
this.modifyById = value;
}
public String getModifyByName() {
return this.modifyByName;
}
public void setModifyByName(String value) {
this.modifyByName = value;
}
public Date getModifyTime() {
return this.modifyTime;
}
public void setModifyTime(Date value) {
this.modifyTime = value;
}
public String getLineId() {
return this.lineId;
}
public void setLineId(String value) {
this.lineId = value;
}
public String getInstitutionId() {
return this.institutionId;
}
public void setInstitutionId(String value) {
this.institutionId = value;
}
public Integer getOptimizeState() {
return this.optimizeState;
}
public void setOptimizeState(Integer value) {
this.optimizeState = value;
}
public Date getOptimizeDate() {
return this.optimizeDate;
}
public void setOptimizeDate(Date value) {
this.optimizeDate = value;
}
/**
* 井口列表
*/
@XText("井口列表")
private List<GetSpaceOptimizeShortWellheadViewOutput> wellheadList;
}
package pps.core.space.service.data.space_optimize_short_wellhead;
import lombok.Data;
import pps.core.space.service.data.space_optimize_short_duration.GetSpaceOptimizeShortDurationOutput;
import xstartup.annotation.XText;
import java.util.Date;
import java.util.List;
/**
* 短期间开优化井口记录
*
* @author ZWT
* @date 2023/09/08
*/
@Data
public class GetSpaceOptimizeShortWellheadViewOutput {
@XText("ID")
private String id;
@XText("是否删除(0_是;1_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间")
private Date createTime;
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("短期优化周期ID")
private String shortPeriodId;
@XText("井口ID")
private String wellheadId;
......@@ -38,92 +21,9 @@ public class GetSpaceOptimizeShortWellheadViewOutput {
@XText("井号")
private String wellNumber;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public Integer getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(Integer value) {
this.isDeleted = value;
}
public String getCreateById() {
return this.createById;
}
public void setCreateById(String value) {
this.createById = value;
}
public String getCreateByName() {
return this.createByName;
}
public void setCreateByName(String value) {
this.createByName = value;
}
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date value) {
this.createTime = value;
}
public String getModifyById() {
return this.modifyById;
}
public void setModifyById(String value) {
this.modifyById = value;
}
public String getModifyByName() {
return this.modifyByName;
}
public void setModifyByName(String value) {
this.modifyByName = value;
}
public Date getModifyTime() {
return this.modifyTime;
}
public void setModifyTime(Date value) {
this.modifyTime = value;
}
public String getShortPeriodId() {
return this.shortPeriodId;
}
public void setShortPeriodId(String value) {
this.shortPeriodId = value;
}
public String getWellheadId() {
return this.wellheadId;
}
public void setWellheadId(String value) {
this.wellheadId = value;
}
public String getWellNumber() {
return this.wellNumber;
}
public void setWellNumber(String value) {
this.wellNumber = value;
}
/**
* 井口时段配置
*/
@XText("井口时段配置")
private List<GetSpaceOptimizeShortDurationOutput> durationList;
}
......@@ -44,12 +44,27 @@
where
id=#{id}
</select>
<select id="selectList" parameterType="pps.core.space.entity.SpaceOptimizeShortDurationView"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from space_optimize_short_duration
where
id=#{id}
WITH opt_short AS (SELECT wellhead_id, is_optimize, open_well_time, close_well_time, generation_type_key
FROM space_optimize_short_duration
WHERE is_optimize = 0
AND short_period_id = #{shortPeriodId})
SELECT *
FROM (SELECT wellhead_id,
is_optimize,
open_well_time,
close_well_time,
generation_type_key
FROM space_optimize_short_duration
WHERE is_optimize = 1
AND short_period_id = #{shortPeriodId}
AND wellhead_id NOT IN (SELECT wellhead_id FROM opt_short)
UNION ALL
SELECT *
FROM opt_short) d
ORDER BY d.wellhead_id,
d.open_well_time
</select>
</mapper>
\ No newline at end of file
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