Commit 7defc717 authored by ZWT's avatar ZWT

feat(能源管理系统): 基础信息配置

1.修改基础信息配置-井口配置模块删除接口,增加私有方法校验井口是否已被线路引用;
2.修改基础信息配置-光伏电站配置模块删除接口,增加私有方法校验光伏电站是否已被线路引用;
3.修改基础信息配置-储能设备配置模块删除接口,增加私有方法校验储能设备是否已被线路引用;
4.修改基础信息配置-柴发设备配置模块删除接口,增加私有方法校验柴发设备是否已被线路引用;
5.修改基础信息配置-市电峰谷模块新增/修改接口,优化市电峰谷关联信息批量新增逻辑;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent c274f354
...@@ -2,13 +2,11 @@ package pps.core.base.entity; ...@@ -2,13 +2,11 @@ package pps.core.base.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.Valid;
import lombok.Data; import lombok.Data;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* 市电峰谷月配置表 * 市电峰谷月配置表
...@@ -27,11 +25,4 @@ public class BasePriceStrategyMonthEnt extends BaseModel implements Serializable ...@@ -27,11 +25,4 @@ public class BasePriceStrategyMonthEnt extends BaseModel implements Serializable
@XText("市电峰谷月(1-12)") @XText("市电峰谷月(1-12)")
@TableField @TableField
private String strategyMonth; private String strategyMonth;
/**
* 策略明细入参
*/
@TableField(exist = false)
@Valid
private List<BasePriceStrategyDetailEnt> details;
} }
package pps.core.base.entity; package pps.core.base.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import jakarta.validation.Valid;
import lombok.Data; import lombok.Data;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* 市电峰谷月配置表 * 市电峰谷月配置表
...@@ -23,4 +25,11 @@ public class BasePriceStrategyMonthView extends BaseModel implements Serializabl ...@@ -23,4 +25,11 @@ public class BasePriceStrategyMonthView extends BaseModel implements Serializabl
@XText("市电峰谷月(1-12)") @XText("市电峰谷月(1-12)")
@TableField @TableField
private String strategyMonth; private String strategyMonth;
/**
* 策略明细入参
*/
@TableField(exist = false)
@Valid
private List<BasePriceStrategyDetailView> details;
} }
package pps.core.base.mapper; package pps.core.base.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import pps.core.base.entity.BasePriceStrategyDetailView; import pps.core.base.entity.BasePriceStrategyDetailView;
...@@ -16,4 +17,12 @@ public interface BasePriceStrategyDetailViewMapper { ...@@ -16,4 +17,12 @@ public interface BasePriceStrategyDetailViewMapper {
BasePriceStrategyDetailView selectOne(BasePriceStrategyDetailView record); BasePriceStrategyDetailView selectOne(BasePriceStrategyDetailView record);
List<BasePriceStrategyDetailView> selectList(BasePriceStrategyDetailView record); List<BasePriceStrategyDetailView> selectList(BasePriceStrategyDetailView record);
/**
* 批量新增
*
* @param list 列表
* @return int
*/
int batchInsertList(@Param(value = "list") List<BasePriceStrategyDetailView> list);
} }
package pps.core.base.mapper; package pps.core.base.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import pps.core.base.entity.BasePriceStrategyMonthView; import pps.core.base.entity.BasePriceStrategyMonthView;
...@@ -16,4 +17,12 @@ public interface BasePriceStrategyMonthViewMapper { ...@@ -16,4 +17,12 @@ public interface BasePriceStrategyMonthViewMapper {
BasePriceStrategyMonthView selectOne(BasePriceStrategyMonthView record); BasePriceStrategyMonthView selectOne(BasePriceStrategyMonthView record);
List<BasePriceStrategyMonthView> selectList(BasePriceStrategyMonthView record); List<BasePriceStrategyMonthView> selectList(BasePriceStrategyMonthView record);
/**
* 批量新增
*
* @param list 列表
* @return int
*/
int batchInsertList(@Param(value = "list") List<BasePriceStrategyMonthView> list);
} }
package pps.core.base.service; package pps.core.base.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
...@@ -60,9 +61,7 @@ public class BasePriceStrategyService { ...@@ -60,9 +61,7 @@ public class BasePriceStrategyService {
@XApiPost @XApiPost
@XText("市电峰谷策略--新增") @XText("市电峰谷策略--新增")
public XServiceResult createBasePriceStrategy(XContext context, CreateBasePriceStrategyInput input) { public XServiceResult createBasePriceStrategy(XContext context, CreateBasePriceStrategyInput input) {
PpsUserSession session = new PpsUserSession(); PpsUserSession session = context.getSession(PpsUserSession.class);
session.setId("123");
session.setUserName("ceshi");
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
BasePriceStrategyMapper mapper = context.getBean(BasePriceStrategyMapper.class); BasePriceStrategyMapper mapper = context.getBean(BasePriceStrategyMapper.class);
BasePriceStrategyEnt entity = XCopyUtils.copyNewObject(input, BasePriceStrategyEnt.class); BasePriceStrategyEnt entity = XCopyUtils.copyNewObject(input, BasePriceStrategyEnt.class);
...@@ -71,9 +70,8 @@ public class BasePriceStrategyService { ...@@ -71,9 +70,8 @@ public class BasePriceStrategyService {
String strategyId = entity.getId(); String strategyId = entity.getId();
List<CreateBasePriceStrategyMonthInput> inputMonths = input.getMonths(); List<CreateBasePriceStrategyMonthInput> inputMonths = input.getMonths();
if (CollUtil.isNotEmpty(inputMonths)) { if (CollUtil.isNotEmpty(inputMonths)) {
List<BasePriceStrategyMonthEnt> monthList = XCopyUtils.copyNewList(inputMonths, BasePriceStrategyMonthEnt.class); List<BasePriceStrategyMonthView> monthList = XCopyUtils.copyNewList(inputMonths, BasePriceStrategyMonthView.class);
BasePriceStrategyMonthMapper monthMapper = context.getBean(BasePriceStrategyMonthMapper.class); this.saveStrategyMonthDetail(context, monthList, strategyId, session);
this.saveStrategyMonthDetail(context, monthMapper, monthList, strategyId, session);
} }
return XServiceResult.OK; return XServiceResult.OK;
}); });
...@@ -101,9 +99,9 @@ public class BasePriceStrategyService { ...@@ -101,9 +99,9 @@ public class BasePriceStrategyService {
} }
List<UpdateBasePriceStrategyMonthInput> inputMonths = input.getMonths(); List<UpdateBasePriceStrategyMonthInput> inputMonths = input.getMonths();
if (CollUtil.isNotEmpty(inputMonths)) { if (CollUtil.isNotEmpty(inputMonths)) {
List<BasePriceStrategyMonthEnt> monthList = XCopyUtils.copyNewList(inputMonths, BasePriceStrategyMonthEnt.class); List<BasePriceStrategyMonthView> monthList = XCopyUtils.copyNewList(inputMonths, BasePriceStrategyMonthView.class);
List<String> collect = monthList.stream() List<String> collect = monthList.stream()
.map(BasePriceStrategyMonthEnt::getStrategyMonth) .map(BasePriceStrategyMonthView::getStrategyMonth)
.collect(Collectors.toList()); .collect(Collectors.toList());
BasePriceStrategyMonthMapper monthMapper = context.getBean(BasePriceStrategyMonthMapper.class); BasePriceStrategyMonthMapper monthMapper = context.getBean(BasePriceStrategyMonthMapper.class);
//删除月信息 //删除月信息
...@@ -119,7 +117,7 @@ public class BasePriceStrategyService { ...@@ -119,7 +117,7 @@ public class BasePriceStrategyService {
.eq(BasePriceStrategyDetailEnt::getStrategyId, strategyId) .eq(BasePriceStrategyDetailEnt::getStrategyId, strategyId)
.in(BasePriceStrategyDetailEnt::getStrategyMonth, collect) .in(BasePriceStrategyDetailEnt::getStrategyMonth, collect)
); );
this.saveStrategyMonthDetail(context, monthMapper, monthList, strategyId, session); this.saveStrategyMonthDetail(context, monthList, strategyId, session);
} }
XCopyUtils.copyObject(input, entity); XCopyUtils.copyObject(input, entity);
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
...@@ -320,28 +318,30 @@ public class BasePriceStrategyService { ...@@ -320,28 +318,30 @@ public class BasePriceStrategyService {
/** /**
* 保存策略明细 * 保存策略明细
* *
* @param monthMapper 月映射器 * @param context 上下文
* @param monthList 月清单 * @param monthList 月份列表
* @param strategyId 略id * @param strategyId 略id
* @param session 会话 * @param session 一场
*/ */
private void saveStrategyMonthDetail(XContext context, BasePriceStrategyMonthMapper monthMapper, List<BasePriceStrategyMonthEnt> monthList, String strategyId, PpsUserSession session) { private void saveStrategyMonthDetail(XContext context, List<BasePriceStrategyMonthView> monthList, String strategyId, PpsUserSession session) {
BasePriceStrategyDetailMapper detailMapper = context.getBean(BasePriceStrategyDetailMapper.class); BasePriceStrategyMonthViewMapper monthMapper = context.getBean(BasePriceStrategyMonthViewMapper.class);
String strategyMonth; BasePriceStrategyDetailViewMapper detailMapper = context.getBean(BasePriceStrategyDetailViewMapper.class);
List<BasePriceStrategyDetailEnt> detailList; List<BasePriceStrategyDetailView> detailViewList = new ArrayList<>(256);
for (BasePriceStrategyMonthEnt monthEnt : monthList) { List<BasePriceStrategyMonthView> monthViewList = new ArrayList<>(16);
monthEnt.setStrategyId(strategyId); for (BasePriceStrategyMonthView monthView : monthList) {
BaseUtils.setBaseModelDefault(monthEnt, session); monthView.setStrategyId(strategyId);
monthMapper.insert(monthEnt); BaseUtils.setBaseModelDefault(monthView, session);
strategyMonth = monthEnt.getStrategyMonth(); monthView.setId(UUID.randomUUID().toString());
//todo 改批量新增 monthViewList.add(monthView);
detailList = monthEnt.getDetails(); for (BasePriceStrategyDetailView detailView : monthView.getDetails()) {
for (BasePriceStrategyDetailEnt detailEnt : detailList) { detailView.setStrategyId(strategyId);
detailEnt.setStrategyId(strategyId); detailView.setStrategyMonth(monthView.getStrategyMonth());
detailEnt.setStrategyMonth(strategyMonth); BaseUtils.setBaseModelDefault(detailView, session);
BaseUtils.setBaseModelDefault(detailEnt, session); detailView.setId(UUID.randomUUID().toString());
detailMapper.insert(detailEnt); detailViewList.add(detailView);
} }
} }
monthMapper.batchInsertList(monthViewList);
detailMapper.batchInsertList(detailViewList);
} }
} }
\ No newline at end of file
...@@ -50,4 +50,42 @@ ...@@ -50,4 +50,42 @@
where where
id=#{id} id=#{id}
</select> </select>
<insert id="batchInsertList" parameterType="list">
INSERT INTO base_price_strategy_detail (
id,
create_by_id,
create_by_name,
create_time,
modify_by_id,
modify_by_name,
modify_time,
strategy_id,
strategy_month,
period_type_key,
start_time,
end_time,
electrovalence,
internal_settlement_price
)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.strategyId},
#{item.strategyMonth},
#{item.periodTypeKey},
#{item.startTime},
#{item.endTime},
#{item.electrovalence},
#{item.internalSettlementPrice}
)
</foreach>
</insert>
</mapper> </mapper>
\ No newline at end of file
...@@ -40,4 +40,23 @@ ...@@ -40,4 +40,23 @@
where where
id=#{id} id=#{id}
</select> </select>
<insert id="batchInsertList" parameterType="list">
INSERT INTO base_price_strategy_month ( id, create_by_id, create_by_name, create_time, modify_by_id,
modify_by_name, modify_time, strategy_id, strategy_month )
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.strategyId},
#{item.strategyMonth}
)
</foreach>
</insert>
</mapper> </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